dba júnior - nervnervinformatica.com.br/downloads/materiais/dbajr-12c...manipulação de arquivos...

221
DBA Júnior Ricardo Porlho Proni [email protected] Esta obra está licenciada sob a licença Creave Commons Atribuição-SemDerivados 3.0 Brasil. Para ver uma cópia desta licença, visite hp://creavecommons.org/licenses/by-nd/3.0/br/.

Upload: others

Post on 14-Feb-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

  • DBA Júnior

    Ricardo Portilho [email protected]

    Esta obra está licenciada sob a licençaCreative Commons Atribuição-SemDerivados 3.0 Brasil.

    Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nd/3.0/br/.

  • 2

    Comandos no TreinamentoComando com o usuário root:# ls -lh

    Comando com um usuário normal:$ ls -lh

    Adicionar texto a um arquivo:# vi /etc/my.cnf...log-bin=mysql-bin...

    Comando no MySQL:mysql> show databases;

    Comando no Oracle:SQL> SELECT STATUS FROM V$INSTANCE;

    Quando algo dá errado propositalmente:O que aconteceu?

  • 3

    ● Linux (Sistema Operacional, Virtualização, Redes, Storage)● MySQL● Oracle

    3

    Agenda

  • 4

    Produtos utilizados no Treinamento● Oracle Enterprise Linux x64 6● Oracle VirtualBox x64 5.2● Windows Server 2008 x32● MySQL Community Server x64 5.6● Oracle Database Enterprise Edition x64 12cR2

  • 5

    LinuxSistema Operacional, Virtualização, Redes, Storage

    5

  • 6

    6

    Alta x Baixa plataforma

  • 7

    7

    Plataformas e Arquiteturas• Alpha (64 bits)• ARM 32 (32 bits)• ARM 64 (64 bits)• AVR32 (32 bits)• Blackfin (32 bits)• DLX (32 bits)• ESi-RISC (16/32 bits)• Itanium (IA-64) (64 bits)• M32R (32 bits)• m68k (16/32 bits)• Mico32 (32 bits)• MIPS (64 bits)• MMIX (64 bits)• PA-RISC (64 bits)• PowerPC (32/64 bits)• S+core (16/32 bits)• Series 32000 (32 bits)• SPARC (64 bits)• SuperH (32 bits)• System/360 / System/370 / z/Architecture (64 bits)• VAX (32 bits)• x86 (32 bits)• x86-64 (64 bits)

  • 8

    8

    História do Unix

  • 9

    9

    Distribuições, Edições, Versões

    https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svghttp://upload.wikimedia.org/wikipedia/commons/e/ed/LinuxDistroTimeline.png

  • 10

    10

    Distribuições, Edições, Versões

  • 11

    11

    Linux Homologados para Oracle Database 12cR2

  • 12

    12

    Download OEL 6

  • 13

    13

    Download OEL 6

  • 14

    14

    Download OEL 6

  • 15

    15

    Download OEL 6

  • 16

    16

    Instalação OEL 6

  • 17

    17

    Instalação OEL 6

  • 18

    18

    Instalação OEL 6

  • 19

    19

    Instalação OEL 6

  • 20

    20

    Instalação OEL 6

  • 21

    21

    Instalação OEL 6

  • 22

    22

    Instalação OEL 6

  • 23

    23

    Instalação OEL 6

  • 24

    24

    Instalação OEL 6

  • 25

    25

    Instalação OEL 6

  • 26

    26

    Instalação OEL 6

  • 27

    27

    Instalação OEL 6

  • 28

    28

    Instalação OEL 6

  • 29

    29

    Instalação OEL 6

  • 30

    30

    Instalação OEL 6

  • 31

    31

    Instalação OEL 6

  • 32

    32

    Instalação OEL 6

  • 33

    33

    Instalação OEL 6

  • 34

    34

    Instalação OEL 6

  • 35

    35

    Instalação OEL 6

  • 36

    36

    Instalação OEL 6

  • 37

    37

    Instalação OEL 6

  • 38

    38

    Instalação OEL 6

  • 39

    39

    Instalação OEL 6

  • 40

    40

    Instalação OEL 6

  • 41

    41

    Instalação OEL 6

  • 42

    42

    Instalação OEL 6

  • 43

    43

    Instalação OEL 6

  • 44

    44

    Instalação OEL 6

  • 45

    45

    Instalação OEL 6

  • 46

    46

    Instalação OEL 6

  • 47

    47

    Instalação OEL 6

  • 48

    48

    Instalação OEL 6

  • 49

    49

    Instalação OEL 6

  • 50

    50

    Instalação OEL 6

  • 51

    51

    Manipulação de ArquivosExecute logon como root.Habilite a rede (Clique com o botão esquerdo no ícone de rede, e em eth0).Abra um terminal (Clique com o botão direito no Desktop, e então em “Open In Terminal”.)# yum -y update

    Abra outro terminal, e verifique os arquivos existentes no diretório:# ls# ls -l# pwd# cd ..# pwd# ls# ls -l# ls -lh# ls -lA# ls -lh *.log# cd ..# pwd# ls -lh# man ls

  • 52

    52

    Manipulação de Arquivos# cd# pwdEm que diretório você está?

    # ls -lh# file Desktop# file install.log# cat install.log# head install.log# tail install.log

    # cp install.log install.log.backup# mv install.log install.log.new# rm install.log.backup# touch install.log# mkdir teste# cp install.log testeO que estes comandos fizeram?

  • 53

    53

    Manipulação de Arquivos# cat install.log# cat install.log.new > install.log# cat install.log# grep xorg install.log# grep xorg install.log | grep fonts# grep xorg install.log | grep -v fonts

    # watch ls -lh

    # vi install.logESC e depois i --- insere texto.ESC e depois x --- remove uma letra.ESC e depois dd --- remove uma linha.ESC e depois :w --- salva as alterações.ESC e depois :q --- sai do vi.ESC e depois :wq --- salva as alterações, e sai do vi.ESC e depois :q! --- sai do vi sem salvar as alterações.

    # clearO que a seta para cima faz?# cat .bash_history

  • 54

    54

    Gerenciamento de PacotesColoque o DVD. Verifique se o DVD já está montado.# df -h

    Vá até o diretório onde estão os pacotes no DVD.# cd /media//Packages

    Tente instalar o gcc.# rpm -ivh gcc-c++*

    O que aconteceu?# yum install gcc-c++

  • 55

    55

    Particionamento e Sistema de ArquivosCrie uma partição com o espaço livre.# fdisk -l# fdisk /dev/sdaDigite: p Digite: n

    Digite: p Digite: w

    # fdisk -l

    Formate esta partição com o Sistema de Arquivos ext4.# mkfs.ext4 /dev/sda8

    O que aconteceu?

  • 56

    56

    Particionamento e Sistema de ArquivosCrie um diretório, e monte o dispositivo nele.# mkdir /u01# mount /dev/sda8 /u01

    Faça este sistema de arquivos ser montado automaticamente.# vi /etc/fstab.../dev/sda8 /u01 ext4 defaults 1 2...

    Teste se o arquivo /etc/fstab está correto.# umount /u01# mount /u01

  • 57

    57

    ServicesVerifique se o Apache está configurado para iniciar automaticamente.# chkconfig# chkconfig | grep httpd# chkconfig --level 35 httpd on# chkconfig | grep httpd

    Inicie e teste o serviço do Apache.# service httpd status# firefox localhost# service httpd start# service httpd status# firefox localhost

  • 58

    58

    Usuários, Grupos, Permissões

    Verifique qual é o seu usuário, e que permissões ele tem.# whoami# id# ls -lh /root/# cat /etc/passwd# cat /etc/group

    Adicione grupos e o usuário oracle.# groupadd -g 1000 oinstall# groupadd -g 1200 dba# groupadd -g 1300 oper# useradd -u 1100 -g oinstall -G dba,oper oracle# passwd oracle# id oracle# cat /etc/passwd# cat /etc/group

  • 59

    59

    Usuários, Grupos, Permissões

    Torne-se o usuário oracle, e verifique suas permissões.# su – oracle$ whoami$ id$ pwd$ ls -lh /root/O que aconteceu?

    Dê permissão para um arquivo ao usuário oracle, e teste.$ exit# chown oracle:dba /root/install.log# su – oracle$ ls -lh /root/$ ls -lh /root/install.logO que aconteceu?

  • 60

    60

    Shell

    Com o usuário oracle, crie um script Bash.$ vi teste.sh...#!/bin/bashdateecho “Teste”...

    Execute-o:$ teste.shO que aconteceu?

    $ sh teste.sh$ /home/oracle/teste.sh$ ./teste.shO que aconteceu?

    $ chmod +x /home/oracle/teste.sh$ /home/oracle/teste.sh$ ./teste.sh

  • 61

    61

    Shell

    Execute-o diretamente desta vez.$ teste.sh$ echo $PATH$ export PATH=/home/oracle/:$PATH$ echo $PATH$ teste.shO que aconteceu?

  • 62

    62

    crontab

    Agende o script na crontab.$ crontab -l$ crontab -e...* * * * * /home/oracle/teste.sh >> /home/oracle/teste.log...

    $ crontab -l

    $ tail /home/oracle/teste.log$ tail -f /home/oracle/teste.log

  • 63

    63

    Processos

    Verifique os processos em execução.$ ps$ ps a$ ps aux$ ps aux | grep gnome$ pstreeQual a diferença entre estes comandos?

    Finalize o seu processo bash.$ ps a$ kill 2120$ kill -9 2120O que aconteceu?

  • 64

    64

    Desempenho

  • 65

    65

    Desempenho

    $ free

    $ vmstat$ vmstat 2$ vmstat 5

    $ iostat -xd$ iostat -xd 2$ iostat -xd 5

    $ top

  • 66

    66

    Logs

    Verifique os logs mais atuais, e que informação eles têm.$ ls -lh /var/log$ su -# ls -lh /var/log# cat /var/log/messages

  • 67

    67

    Virtualização Hard x Soft

  • 68

    68

    Produtos de Virtualização Oracle

  • 69

    69

    Produtos de Virtualização Oracle

  • 70

    70

    Instalação Oracle VirtualBox

    # ls -lh /root/Downloads# rpm -ivh /root/Downloads/VirtualBox*

  • 71

    71

    Criação VMs

  • 72

    72

    Criação VMs

  • 73

    73

    Criação VMs

  • 74

    74

    Criação VMs

  • 75

    75

    Criação VMs

  • 76

    76

    Criação VMs

  • 77

    77

    Criação VMs

  • 78

    78

    Configuração VMs

  • 79

    79

    Configuração VMs

  • 80

    80

    Configuração VMs

  • 81

    81

    Configuração VMs

  • 82

    82

    Configuração VMs

  • 83

    83

    Configuração VMs

  • 84

    84

    Configuração VMs

  • 85

    85

    Configuração VMs

  • 86

    86

    Configuração VMs

  • 87

    87

    Configuração VMs

  • 88

    88

    Configuração VMs

  • 89

    89

    Configuração VMs

  • 90

    90

    Configuração VMs

  • 91

    91

    Configuração VMs

  • 92

    92

    Configuração VMs

  • 93

    93

    Configuração VMs

  • 94

    94

    Configuração VMs

  • 95

    95

    Clone VMs

  • 96

    96

    Clone VMs

  • 97

    97

    Clone VMs

  • 98

    98

    Clone VMs

  • 99

    99

    Snapshot VMs

  • 100

    100

    Snapshot VMs

  • 101

    101

    Snapshot VMs

  • 102

    102

    Export / Import Appliance

  • 103

    103

    Export / Import Appliance

  • 104

    104

    Export / Import Appliance

  • 105

    105

    Export / Import Appliance

  • 106

    106

    Export / Import Appliance

  • 107

    107

    Redes TCP/IP● IP / Mask/ Gateway / DNS● DHCP● Routing / Firewall / Proxy● IDS / IPS● VLAN

    Qual seu IP / Mask / Gateway / DNS?

  • 108

    Configure as placas de rede.

    108

    Configuração de Rede

  • 109

    109

    ssh / scp / ftpExecute logon remoto no computador do seu vizinho.# ssh [email protected]# exit

    Copie um arquivo do computador do seu vizinho para o seu.# scp [email protected]:/root/install.log /tmp/# scp [email protected]:/root/install.log /tmp/install.log# scp [email protected]:/root/install.log /tmp/install.tmp# scp [email protected]:/root/install.log .

    Copie um arquivo de seu computador para o do seu vizinho.# scp /root/install.log [email protected]:/root/Desktop/install.log

  • 110

    110

    mstsc / rdesktopExecute logon remoto no Windows Server de sua VM.# rdesktop IpDaVMWindowsPor que não funciona?

  • 111

    111

    VNC / XserverExecute logon remoto gráfico no computador do seu vizinho.# vncviewer 192.168.0.102:1Por que não funciona?

    Execute logon remoto no computador do seu vizinho.# ssh -CX [email protected]# firefox

  • 112

    112

    Windows ShareCrie um compartilhamento no Windows Server, em sua VM.Crie uma pasta (sem espaços no nome) no C:\.Clique com o botão direito em uma pasta -> Share -> Share → Yes -> Done.

    Instale a compatibilidade com Samba em seu computador.# yum -y install samba-client samba-common cifs-utils

    Monte este compartilhamento em seu computador.# mkdir /mnt/windows# mount -t cifs //192.168.0.40/temp -o username=Administrator,password=Nerv2018 /mnt/windows

  • 113

    113

    Tecnologias Storage- IDE, ATA, SATA, SCSI- SSD, Cache- RAID (próxima página)- SAN (Storage Area Network), NAS (Network Attached Storage)- Cluster Filesystems- LUN

    Protocolos- iSCSI- Fiber Channel (FC)- ATA-over-Ethernet (AoE)- Fibre Channel over Ethernet (FCoE)- Fibre Channel over IP (FCIP)- HyperSCSI SCSI over Ethernet frames instead of IP (as iSCSI is)- ISCSI Extensions for RDMA (iSER)- Internet Fibre Channel Protocol (iFCP)- Internet Storage Name Service (iSNS)- The SCST Linux SCSI target software stack- Linux LIO Unified Target software stack- Service Location Protocol

  • 114

    114

    RAID

  • 115

    Crie um diretório para o NFS Server.# yum install nfs-utils

    Crie um diretório para o NFS Server.# mkdir /shared_data

    Adicionar no arquivo /etc/exports a linha abaixo./shared_data *(rw,sync,no_wdelay,insecure_locks,no_root_squash)

    Inicie o serviço NFS Server.# chkconfig nfs on# service nfs restart

    115

    NFS Server

  • 116

    Adicionar no arquivo /etc/fstab a linha abaixo.192.168.15.201:/shared_data /u01/oradata nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0

    Monte o Filesystem NFS.# mkdir /u01/oradata# mount /u01/oradata# touch /u01/oradata/teste-nerv01.txt

    O vizinho consegue vizualizar seu arquivo?O vizinho consegue alterar seu arquivo?

    116

    NFS Client

  • 117

    117

    iSCSI InitiatorInstale e ative o pacote iSCSI Initiator.# yum -y install iscsi-initiator-utils# service iscsid start# chkconfig iscsid on

    Verifique os Discos exportados no Storage.# iscsiadm -m discovery -t sendtargets -p 192.168.15.201 -l

    Verifique se o disco foi configurado localmente.# fdisk -l

  • 118

    Particione o novo disco.# fdisk /dev/sdbDigite: n Digite: p Digite: 1

    Digite: w

    Formate, crie um ponto de montagem, e monte a partição deste novo disco.

    iSCSI Initiator

  • 119

    MySQL

    119

  • 120

    120

    Por que MySQL?

  • 121

    121

    Evolução MySQL

  • 122

    122

    Edições - Community

  • 123

    123

    Edições - Enterprise

  • 124

    124

    Instalação

    [root@Melquior ~]# yum -y install mysql-server...[root@Melquior ~]# rpm -qa | grep mysqlmysql-server-5.1.73-3.el6_5.x86_64mysql-libs-5.1.73-3.el6_5.x86_64mysql-5.1.73-3.el6_5.x86_64[root@Melquior ~]#

  • 125

    125

    Instalação

  • 126

    126

    Instalação

  • 127

    127

    InstalaçãoInstale o MySQL.# yum -y install https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm# yum -y install mysql-server# chkconfig mysqld on# service mysqld start

    # grep password /var/log/mysqld.log

    # /usr/bin/mysqladmin -p -u root password 'Nerv2018.'# mysql -u root -pNerv2018.

    https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm

  • 128

    128

    Verificação

    Acesse o MySQL.# mysql -u root -pNerv2018.mysql> exit;

    Verifique se o MySQL está ativo.# mysqladmin -u root -pNerv2018. status

    Verifique o Log do MySQL.# tail /var/log/mysqld.log

  • 129

    129

    Programas Cliente

    # mysql -u root -pNerv2018.mysql> SHOW STATUS;mysql> EXIT;

    # mysql -u root -pNerv2018. -e “SHOW STATUS”

    # mysql -u root -pNerv2018. -e “SHOW STATUS” > status.txt# cat status.txt# mysql -t -u root -pNerv2018. -e “SHOW STATUS” > status.txt# cat status.txt# mysql -E -u root -pNerv2018. -e “SHOW STATUS” > status.txt# cat status.txt

    # echo “SHOW STATUS” >> script.sql# cat script.sql# mysql -t -u root -pNerv2018. < script.sql# mysql -u root -pNerv2018. < script.sql > status.txt# cat status.txt

  • 130

    130

    Engines● MyISAM● InnoDB● Memory● Archive● CSV● Merge● Federated● NDB● Blackhole● Example● MariaDB / Aria● Percona XtraDB● Percona XtraDB Cluster● Percona TokuDB

    mysql> CREATE TABLE teste (coluna1 int) Engine=InnoDB;mysql> CREATE TABLE teste2 (coluna1 int) Engine=MyISAM;

  • 131

    131

    Processos e ThreadsExecute um teste de carga no MySQL.# yum -y install mysql-test# mysqlslap --user=root --password=Nerv2018. --auto-generate-sql --concurrency=10 --iterations=10 --number-char-cols=10 --number-int-cols=5 --engine=innodb

    Durante a execução do teste, acompanhe no Linux, via top.

    Durante a execução do teste, acompanhe no MySQL, via mysqladmin.# mysqladmin -u root -pNerv2018. status

    # mysql -u root -pNerv2018.mysql> SHOW PROCESSLIST;mysql> SHOW FULL PROCESSLIST;

    http://dev.mysql.com/doc/refman/5.6/en/general-thread-states.html

  • 132

    132

    Parâmetros de otimizaçãoAltere todos os parâmetros abaixo no arquivo de parâmetros, e reinicie o MySQL.# vi /etc/my.cnf...[mysqld]max_connections = 800thread_cache_size = 100

    innodb_buffer_pool_size = 512Mkey_buffer_size = 128M

    read_buffer_size = 2Mread_rnd_buffer_size = 2Msort_bufer_size = 2Mjoin_bufer_size = 2M

  • 133

    133

    Parâmetros de recuperaçãoAltere todos os parâmetros abaixo no arquivo de parâmetros, e reinicie o MySQL.tmp_table_size = 8Mtmpdir = /tmp/

    slow_query_log_file = /var/log/mysql-slow.loglong_query_time = 5

    innodb_log_file_size = 32Minnodb_log_files_in_group = 7innodb_log_buffer_size = 64Minnodb_flush_log_at_trx_comit = 1

    Verificar parâmetros:mysql> SHOW VARIABLES LIKE 'read%buffer_size';

  • 134

    134

    Bancos de DadosCrie um novo banco de dados.# mysql -u root -pNerv2018.mysql> show databases;mysql> create database nerv;mysql> show databases;mysql> use nerv;mysql> show tables;

  • 135

    135

    Estruturas físicas# ls -lh /var/lib/mysql/total 29M-rw-rw----. 1 mysql mysql 18M Jan 24 14:45 ibdata1-rw-rw----. 1 mysql mysql 5.0M Jan 24 14:45 ib_logfile0-rw-rw----. 1 mysql mysql 5.0M Jan 24 14:45 ib_logfile1drwx--x--x. 2 mysql mysql 4.0K Jan 24 14:43 mysqlsrwxrwxrwx. 1 mysql mysql 0 Jan 24 14:45 mysql.sockdrwx------. 2 mysql mysql 4.0K Jan 24 15:12 nervdrwx------. 2 mysql mysql 4.0K Jan 24 14:43 performance_schema-rw-rw----. 1 mysql mysql 6 Jan 24 14:45 Proni-PC.localdomain.pid-rw-r--r--. 1 root root 112 Jan 24 14:43 RPM_UPGRADE_HISTORY-rw-r--r--. 1 mysql mysql 112 Jan 24 14:43 RPM_UPGRADE_MARKER-LASTdrwxr-xr-x. 2 mysql mysql 4.0K Jan 24 14:43 test

    # ls -lh /var/lib/mysql/nerv/total 4.0K-rw-rw----. 1 mysql mysql 65 Jan 24 15:12 db.opt

  • 136

    136

    Tabelasmysql> use nerv;mysql> CREATE TABLE teste (coluna1 int, coluna2 char(50), coluna3 varchar(255)) Engine=InnoDB;mysql> show tables;O que a criação desta tabela alterou nas estruturas físicas?

    mysql> CREATE TABLE teste2 (coluna1 int, coluna2 char(50), coluna3 varchar(255)) Engine=MyISAM;mysql> show tables;O que a criação desta tabela alterou nas estruturas físicas?

  • 137

    137

    Transações e IsolamentoExecute INSERT de 10 registros em cada uma das tabelas que você criou.

    Execute um UPDATE em todas os registros da teste.

    Abra outra sessão, e execute SELECT em todos os dados da tabela.O que aconteceu?

    Repita a operação, mas antes do UPDATE, coloque como abaixo.mysql> START TRANSACTION;mysql> UPDATE ...O que aconteceu?

  • 138

    138

    Importação e Exportação

    Exemplosmysql> SELECT * FROM t1 INTO OUTFILE '/var/lib/mysql-files/t1.txt';mysql> LOAD DATA INFILE '/var/lib/mysql-files/t1.txt' INTO TABLE t1;

    Execute este procedimento para as tabelas que você criou.

  • 139

    139

    Bin LogsAdicione no /etc/my.cnf a linha abaixo, e reinicie o mysql.server-id=1log-bin=mysql-binexpire_logs_days=7

    O que aconteceu no diretório de dados?

  • 140

    140

    mysqldumpExecute um backup via mysqldump.# mysqldump -u root -pNerv2018. nerv > nerv.sql# mysqldump -u root -pNerv2018. --all-databases > nerv01.sql

    Edite o arquivo gerado.O que ele contém?Como utilizar este backup?Quais suas desvantagens?

  • 141

    141

    INFORMATION_SCHEMAVerifique as tabelas do banco de dados INFORMATION_SCHEMA.Quantas tabelas você possui em todo o MySQL?E em seu banco de dados?

  • 142

    142

    Alta DisponibilidadeMySQL Replication

  • 143

    Alta DisponibilidadeDRBD / Pacemaker / Corosync

  • 144

    Alta DisponibilidadeWindows Server Failover Clustering

  • 145

    Alta DisponibilidadeMySQL Cluster

  • 146

    Alta DisponibilidadeMySQL Fabric

  • 147

    Oracle

    147

  • 148

    148

    Versões e Edições● Oracle Database Express Edition● Oracle Database Personal Edition● Oracle Database Standard Edition One (

  • 149

    149

    Versões e Edições

  • 150

    150

    Versões e Edições

  • 151

    Instalação Oracle

  • 152

    Com o usuário oracle, acrescenter ao final do arquivo /home/oracle/.bash_profile as linhas abaixo.export TMP=/tmpexport TMPDIR=$TMPexport ORACLE_HOSTNAME=nerv01.localdomainexport ORACLE_UNQNAME=ORCLexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1export ORACLE_SID=ORCLexport ORACLE_TERM=xtermexport PATH=/usr/sbin:$PATHexport PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibif [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fifi

    152

    Instalação Oracle

  • 153

    Com o usuário root, execute os pré-requisitos de instalação.# yum -y install oracle-database-server-12cR2-preinstall# mkdir -p /u01/app/oracle/product/12.2.0.1/db_1# chown -R oracle:oinstall /u01# chmod -R 775 /u01

    Com o usuário oracle, descompacte e execute o instalador do Oracle Database Software.$ cd /home/oracle$ unzip -q linuxx64_12201_database.zip$ cd database$ ./runInstaller

    Instalação Oracle

  • 154

    Instalação Oracle

  • 155

    Instalação Oracle

  • 156

    Instalação Oracle

  • 157

    Instalação Oracle

  • 158

    Instalação Oracle

  • 159

    Instalação Oracle

  • 160

    Instalação Oracle

  • 161

    Instalação Oracle

  • 162

    Instalação Oracle

  • 163

    Instalação Oracle

    # /u01/app/oraInventory/orainstRoot.sh# /u01/app/oracle/product/12.2.0.1/db_1/root.shEnter the full pathname of the local bin directory: [/usr/local/bin]:

    ...Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] :yes...

  • 164

    Instalação Oracle

  • 165

    Configuração Listener - netca

  • 166

    Configuração Listener

  • 167

    Configuração Listener

  • 168

    Configuração Listener

  • 169

    Configuração Listener

  • 170

    Configuração Listener

  • 171

    Configuração Listener

  • 172

    Configuração Listener

  • 173

    Criação do Banco de Dados - dbca

  • 174

    Criação do Banco de Dados

  • 175

    Criação do Banco de Dados

  • 176

    Criação do Banco de Dados

  • 177

    Criação do Banco de Dados

  • 178

    Criação do Banco de Dados

  • 179

    Criação do Banco de Dados

  • 180

    Criação do Banco de Dados

  • 181

    Criação do Banco de Dados

  • 182

    Criação do Banco de Dados

  • 183

    Criação do Banco de Dados

  • 184

    Criação do Banco de Dados

  • 185

    Criação do Banco de Dados

  • 186

    Criação do Banco de Dados

  • 187

    Criação do Banco de Dados

  • 188

    Criação do Banco de Dados

  • 189

    Criação do Banco de Dados

  • 190

    Criação do Banco de Dados

  • 191

    191

    Arquitetura Oracle

  • 192

    192

    Enterprise Manager

  • 193

    193

    Enterprise Manager

  • 194

    194

    Enterprise Manager Express

    Execute logon no Enterprise Manager Express como SYSTEM.

  • 195

    195

    Enterprise Manager Express

    Execute logon no Enterprise Manager Express como SYSTEM.

  • 196

    196

    SQL DeveloperExecute o SQL Developer, e crie uma conexão ao seu banco de dados.$ $ORACLE_HOME/sqldeveloper/sqldeveloper.sh

  • 197

    197

    SQL Developer

  • 198

    198

    SQL*PlusVerifique o LISTENER.$ lsnrctl status$ lsnrctl stop$ lsnrctl status$ lsnrctl start$ lsnrctl status

    Execute logon no SQL*Plus via Sistema Operacional.$ sqlplus / AS SYSDBAPor que isto funcionou?

    Execute logon no SQL*Plus via SQL*Net.$ sqlplus SYSTEM/Nerv2018@ORCLPor que isto funcionou?Como executar logon no computador do vizinho?

    Crie uma entrada no arquivo tnsnames.ora para executar logon no computador do vizinho.$ vi $ORACLE_HOME/network/admin/tnsnames.ora

  • 199

    199

    SQL*PlusVerifique o status da instância.SQL> SELECT STATUS FROM V$INSTANCE;SQL> SELECT HOST_NAME FROM V$INSTANCE;SQL> /SQL> LIST

    Salve o SQL de verificação da instância em um arquivo.SQL> DEFINE _EDITOR=viSQL> EDIT

    Execute o arquivo no SQL*Plus.SQL> HOST vi verifica_host.sqlSQL> !vi verifica_host.sqlSQL> @verifica_host.sqlSQL> START verifica_host.sql

  • 200

    200

    SQL*PlusCrie o arquivo abaixo, com os seguintes comandos.$ORACLE_HOME/sqlplus/admin/glogin.sql

    SET LINESIZE 300SET PAGESIZE 1000COLUMN FILE_NAME FORMAT A40SET TIMING ONSET TIME ONSET SQLPROMPT '&_user@&_connect_identifier> 'DEFINE _EDITOR=vi

    Execute logon no SQL*Plus, e verifique o que mudou.

  • 201

    201

    Alert LogVerifique o Alert Log.$ vi /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/alert_ORCL.log$ tail -f /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/alert_ORCL.log$ tail -f $ORACLE_BASE/diag/rdbms///trace/alert_.log

  • 202

    SGA Manual e PGA Manual (< 9i)db_cache_size = 10Gshared_pool_size = 2Glarge_pool_size = 128Mjava_pool_size = 128Mstreams_pool_size = 128Msort_area_size = 1M / sort_area_retained_size = 1M / hash_area_size = 1M / bitmap_merge_area_size = 1M / create_bitmap_area_size = 1M

    SGA Manual e PGA Automática (>= 9i)sga_max_size = 15Gdb_cache_size = 10Gshared_pool_size = 2Glarge_pool_size = 128Mjava_pool_size = 128Mstreams_pool_size = 128Mpga_aggregate_target = 1G

    Configuração de Memória

  • 203

    Semi-automático – ASMM (Automatic Segment Memory Management) (>= 10g)sga_max_size = 15Gsga_target = 15Gpga_aggregate_target = 1Gpga_aggregate_limit = 2G (>= 12c)db_cache_size = 10G

    Automático – ASMM (Automatic Segment Memory Management) (>= 11g)memory_max_target = 0memory_target = 0sga_max_size = 15Gsga_target = 15Gpga_aggregate_target = 1Gpga_aggregate_limit = 2G (>= 12c)

    Automático – AMM (Automatic Memory Management) (>= 11g)memory_max_target = 16Gmemory_target = 16Gsga_target = 0pga_aggregate_target = 0pga_aggregate_limit = 2G (>= 12c)

    203

    Configuração de Memória

  • 204

    204

    Parâmetros de memóriaVerificando parâmetros:SQL> SHOW PARAMETER SGA

    Alterando parâmetro dinâmico:SQL> ALTER SYSTEM SET SGA_TARGET=3G;

    Alterando parâmetro estático:SQL> ALTER SYSTEM SET SGA_MAX_SIZE=5G SCOPE=SPFILE;

  • 205

    205

    STARTUP / SHUTDOWNEstados da InstânciaSHUTDOWNSTARTUPMOUNTOPEN

    ComandosSQL> STARTUP;SQL> STARTUP NOMOUNT;SQL> ALTER DATABASE MOUNT;SQL> STARTUP MOUNT;SQL> ALTER DATABASE OPEN;

    SQL> STARTUP RESTRICT;

    SQL> STARTUP FORCE;

    SQL> SHUTDOWN NORMAL;SQL> SHUTDOWN IMMEDIATE;SQL> SHUTDOWN TRANSACTIONAL;SQL> SHUTDOWN ABORT;

  • 206

    206

    Modo ARCHIVELOG

    Altere o Banco de Dados para o modo NOARCHIVELOG.SQL> SELECT LOG_MODE FROM V$DATABASE;SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> ALTER DATABASE NOARCHIVELOG;SQL> ALTER DATABASE OPEN;SQL> SELECT LOG_MODE FROM V$DATABASE

    Altere o Banco de Dados para o modo ARCHIVELOG.SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> ALTER DATABASE ARCHIVELOG;SQL> ALTER DATABASE OPEN;SQL> SELECT LOG_MODE FROM V$DATABASE;

  • 207

    207

    Estruturas Físicas e Lógicas

  • 208

    208

    Estruturas lógicas e físicasTABLESPACE SEGMENTSEXTENTS DATA BLOCKS

    DATAFILE

  • 209

    Verifique o Espaço Físico.SQL> SELECT TABLESPACE_NAME, FILE_NAME, TO_CHAR(BYTES) FROM DBA_DATA_FILES ORDER BY 1;

    Verifique o Espaço Lógico.SQL> SELECT TABLESPACE_NAME, TO_CHAR(SUM(BYTES))FROM DBA_SEGMENTS GROUP BY TABLESPACE_NAME ORDER BY 1;

    Crie uma TABLESPACE, e verifique novamente os Espaços Físico e Lógico.SQL> CREATE TABLESPACE TESTE DATAFILE '/u01/app/oracle/oradata/ORCL/teste01.dbf'SIZE 10M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

    Adicione um DATAFILE, e verifique novamente os Espaços Físico e Lógico.SQL> ALTER TABLESPACE TESTE ADD DATAFILE '/u01/app/oracle/oradata/ORCL/teste_02.dbf' SIZE 10M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

    Tablespaces e Datafiles

  • 210

    Reajuste o tamanho de um DATAFILE, e verifique novamente os Espaços Físico e Lógico.SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ORCL/teste_02.dbf' RESIZE 20M;

    Exclua a TABLESPACE.SQL> DROP TABLESPACE TESTE INCLUDING CONTENTS AND DATAFILES;

    Crie novamente a TABLESPACE.

    Tablespaces e Datafiles

  • 211

    O que é um schema?

    A coleção de objetos gerenciados por um usuário é um SCHEMA

  • 212

    Como SYSTEM, crie o usuário TESTE.SQL> CREATE USER TESTE IDENTIFIED BY MinhaSenha;

    Como SYSTEM, altere a senha do usuário TESTE.SQL> ALTER USER TESTE ACCOUNT UNLOCK IDENTIFIED BY Nerv2018;

    Tente conectar com o usuário TESTE.$ sqlplus TESTE/Nerv2018O que aconteceu?

    Como SYSTEM, Conceda o privilégio CREATE SESSION para o usuário TESTE.Em seguida, tente se logar novamente no SQL*Plus com o usuário TESTE.SQL> GRANT CREATE SESSION TO TESTE;

    Crie uma tabela com o usuário TESTE.SQL> CREATE TABLE TABELA_TESTE (C1 NUMBER);O que aconteceu?

    Como SYSTEM, conceda o privilégio de sistema RESOURCE para o usuário TESTE.Em seguida, tente criar novamente a tabela com o usuário TESTE.SQL> GRANT RESOURCE TO TESTE;

    Usuários e Permissões

  • 213

    Com o usuário TESTE, insira dados na tabela.SQL> INSERT INTO TABELA_TESTE VALUES (1);O que aconteceu?

    Como SYSTEM, consulte o usuário criado.SQL> SELECT DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME='TESTE';

    Como SYSTEM, altere a TABLESPACE padrão do usuário TESTE.SQL> ALTER USER TESTE DEFAULT TABLESPACE TESTE;SQL> ALTER USER TESTE QUOTA 200M ON TESTE;

    Como usuário TESTE, mova a Tabela para a TABLESPACE TESTE.SQL> ALTER TABLE TABELA_TESTE MOVE TABLESPACE TESTE;

    Com o usuário TESTE, insira dados na tabela.SQL> INSERT INTO TABELA_TESTE VALUES (1);

    Como SYSTEM, consulte os Segmentos do usuário TESTE.SQL> SELECT SEGMENT_NAME, SEGMENT_TYPE, sum(BYTES) FROM DBA_SEGMENTSWHERE OWNER ='TESTE'GROUP BY SEGMENT_NAME, SEGMENT_TYPEORDER BY 3 DESC;

    Usuários e Permissões

  • 214

    Como SYSTEM, conceda privilégios em uma tabela se outro SCHEMA ao usuário TESTE.SQL> GRANT INSERT, DELETE, UPDATE, SELECT ON SYSTEM.HELP TO TESTE;

    Como TESTE, consulte a tabela SYSTEM.HELP.SQL> SELECT * FROM SYSTEM.HELP;

    Como SYSTEM, consulte os privilégios concedidos para o TESTE.SQL> SELECT GRANTEE, OWNER, TABLE_NAME, PRIVILEGE, GRANTORFROM DBA_TAB_PRIVS WHERE GRANTEE='TESTE' AND OWNER='SYSTEM' AND TABLE_NAME='HELP';

    Como SYSTEM, revogue os privilégios concedidos para o usuário TESTE, e verifique.SQL> REVOKE DELETE,INSERT,UPDATE,SELECT ON SYSTEM.HELP FROM TESTE;

    Usuários e Permissões

  • 215

    215

    V$SESSION_WAITExecute novamente o cenário de Transação e Isolamento, e veja o que há na V$SESSION_WAIT.SQL> SELECT SID, EVENT, SECONDS_IN_WAIT FROM V$SESSION_WAIT;SQL> SELECT SID, EVENT, SECONDS_IN_WAIT FROM V$SESSION_WAIT WHERE WAIT_CLASS != 'Idle';

    Qual a diferença da V$SESSION_WAIT antes, durante e após a execução?

  • 216

    216

    exp / imp e expdp / impdp

    Exemplosexp / imp$ exp '"/ AS SYSDBA"' FULL=Y FILE=/home/oracle/FULL.dmp$ exp '"/ AS SYSDBA"' OWNER=HR FILE=HR.dmp$ imp '"/ AS SYSDBA"' FILE=HR.dmp FROMUSER=HR TOUSER=TESTE

    expdp / impdp (Data Pump: >= 10g)$ expdp '"/ AS SYSDBA"' FULL=Y DUMPFILE=FULL.dump$ expdp '"/ AS SYSDBA"' SCHEMAS=HR DUMPFILE=HR.dump$ impdp '"/ AS SYSDBA"' REMAP_SCHEMA=HR:TESTE DUMPFILE=HR.dump

  • 217

    217

    Estruturas físicasSQL> SELECT FILE_NAME FROM DBA_DATA_FILES;SQL> SELECT FILE_NAME FROM DBA_TEMP_FILES;SQL> SELECT FILE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = ‘UNDOTBS1’;SQL> SELECT NAME FROM V$CONTROLFILE;SQL> SELECT MEMBER FROM V$LOGFILE;RMAN> LIST ARCHIVELOG ALL;SQL> SHOW PARAMETER SPFILE;

  • 218

    218

    Configuração Básica RMANExecute os comandos abaixo no RMAN.$ rman target /RMAN> SHOW All;RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 7;RMAN> CONFIGURE BACKUP OPTIMIZATION ON;RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET;RMAN> CONFIGURE COMPRESSION ALGORITHM 'HIGH' OPTIMIZE FOR LOAD TRUE AS OF RELEASE 'DEFAULT';

  • 219

    219

    Backup Básico RMAN

    Execute os comandos abaixo no RMAN.RMAN> BACKUP DATABASE;

    RMAN> LIST ARCHIVELOG ALL;RMAN> BACKUP ARCHIVELOG ALL;RMAN> LIST ARCHIVELOG ALL;RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;RMAN> LIST ARCHIVELOG ALL;

    RMAN> LIST ARCHIVELOG ALL;RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;RMAN> LIST ARCHIVELOG ALL;

  • 220

    220

    Alta Disponibilidade• Oracle RAC• Oracle Data Guard• Oracle Golden Gate• Oracle Streams

  • 221

    Perguntas?

    Ricardo Portilho [email protected]

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58Slide 59Slide 60Slide 61Slide 62Slide 63Slide 64Slide 65Slide 66Slide 67Slide 68Slide 69Slide 70Slide 71Slide 72Slide 73Slide 74Slide 75Slide 76Slide 77Slide 78Slide 79Slide 80Slide 81Slide 82Slide 83Slide 84Slide 85Slide 86Slide 87Slide 88Slide 89Slide 90Slide 91Slide 92Slide 93Slide 94Slide 95Slide 96Slide 97Slide 98Slide 99Slide 100Slide 101Slide 102Slide 103Slide 104Slide 105Slide 106Slide 107Slide 108Slide 109Slide 110Slide 111Slide 112Slide 113Slide 114Slide 115Slide 116Slide 117Slide 118Slide 119Slide 120Slide 121Slide 122Slide 123Slide 124Slide 125Slide 126Slide 127Slide 128Slide 129Slide 130Slide 131Slide 132Slide 133Slide 134Slide 135Slide 136Slide 137Slide 138Slide 139Slide 140Slide 141Slide 142Slide 143Slide 144Slide 145Slide 146Slide 147Slide 148Slide 149Slide 150Slide 151Slide 152Slide 153Slide 154Slide 155Slide 156Slide 157Slide 158Slide 159Slide 160Slide 161Slide 162Slide 163Slide 164Slide 165Slide 166Slide 167Slide 168Slide 169Slide 170Slide 171Slide 172Slide 173Slide 174Slide 175Slide 176Slide 177Slide 178Slide 179Slide 180Slide 181Slide 182Slide 183Slide 184Slide 185Slide 186Slide 187Slide 188Slide 189Slide 190Slide 191Slide 192Slide 193Slide 194Slide 195Slide 196Slide 197Slide 198Slide 199Slide 200Slide 201Slide 202Slide 203Slide 204Slide 205Slide 206Slide 207Slide 208Slide 209Slide 210Slide 211Slide 212Slide 213Slide 214Slide 215Slide 216Slide 217Slide 218Slide 219Slide 220Slide 221