231
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/.

DBA Júnior - NERV

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DBA Júnior - NERV

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/.

Page 2: DBA Júnior - NERV

2

Comandos no Treinamento

Comando 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?

Page 3: DBA Júnior - NERV

3

● Mercado de Trabalho● Linux - Sistema Operacional, Virtualização, Redes, Storage● MySQL● Oracle

3

Agenda

Page 4: DBA Júnior - NERV

4

Produtos utilizados no Treinamento

● Oracle Enterprise Linux x64 6.10● Oracle VirtualBox x64 6.1.2● Windows Server 2008 x32● MySQL Community Server x64 5.7● Oracle Database Enterprise Edition x64 12cR2

Page 5: DBA Júnior - NERV

5

Por que é difícil tornar-se DBA?

Page 6: DBA Júnior - NERV

6

DBA Júnior, Pleno, e Sênior

● Não é apenas uma questão de tempo.● Concurso Público? Empresa? DataCenter? Consultoria?● Tenho X anos, posso começar agora?

Page 7: DBA Júnior - NERV

7

Tarefas do DBA Júnior

● Extração simples de dados (SELECT).● Manipulação simples de dados (INSERT, UPDATE, DELETE)● Instalação do SGBD (mas não Upgrade).● Criação de Bancos de Dados.● Verificação e alteração de parâmetros (mas não a decisão a respeito).● Execução de scripts.● Manutenção de usuários e permissões.● Manutenção de objetos (Tabelas, Índices, etc.).● Manutenção de espaço.● Execução de Backup físico e lógico (mas não Restore).● Transporte de objetos entre servidores.● Verificação de disponibilidade.● Início de verificação de problemas (Troubleshooting).● Início de análise de desempenho (Tuning).

Page 8: DBA Júnior - NERV

8

Formação DBAs: CVs

● Gradução / Pós-graduação / etc.● Treinamentos.● Experiência.● Conhecimentos● Certificação.● Inglês.● Múltiplos Bancos de Dados.● Alguma linguagem de script: Shell, Perl, BAT, VBScript, Powershell.● Linguagem SQL.● Linguagem SQL proprietária (PL/SQL, T-SQL, etc.)● Outra linguagem de programação (pode ser uma porta de entrada).● Certificações de tecnologias acessórias.

Me envie seu CV.

Page 9: DBA Júnior - NERV

9

Planejamento: Quero ser um DBA

- Ter um ambiente de estudo - Ter uma rotina de estudo - Prosseguir com Formação (Graduação, Pós, MBA, etc) - Fazer um Treinamento Oficial (mais teoria) - Fazer um Treinamento não Oficial (mais prática) - Aperfeiçoar Inglês (Leitura) - Ler, ler, ler. - Participar de Grupos de Discussão - Acompanhar Blogs - Ir a Eventos (Networking) - Estudar e tirar primeiro nível de Certificação - Se candidatar a vagas de DBA Júnior - Se candidatar a vagas de Infraestrutura - Se candidatar a vagas de Programação

Page 10: DBA Júnior - NERV

10

Planejamento: Já sou um DBA

- Ter um ambiente de estudo - Ter uma rotina de estudo - Prosseguir com Formação (Graduação, Pós, MBA, etc) - Fazer um Treinamento Oficial (mais teoria) - Fazer um Treinamento não Oficial (mais prática) - Aperfeiçoar Inglês (Escrita e Conversação) - Ler, ler, ler. - Participar de Grupos de Discussão - Acompanhar Blogs - Ir a Eventos (Networking) - Estudar e tirar segundo nível de Certificação

- Espere um ano pelo menos... - E então se candidatar a vagas com maior possibilidade de crescimento.

Page 11: DBA Júnior - NERV

11

Livros: Oracle

Page 12: DBA Júnior - NERV

12

Livros: Oracle

Page 13: DBA Júnior - NERV

13

Comunidades

List Yahoo Oracle Brhttps://www.mail-archive.com/[email protected]/

GPOhttps://www.profissionaloracle.com.br

Glufkehttp://glufke.net/

GUOBhttp://www.guob.com.br/

Database Casthttp://databasecast.com.br/wp/

Certificação BDhttp://certificacaobd.com.br/

DBA Brasilhttps://dbabrasil.net.br/

Page 14: DBA Júnior - NERV

14

Treinamentos Oficiais

Oracle Database Administration Workshop

Page 15: DBA Júnior - NERV

15

Treinamentos NervQuero ser um DBATreinamento DBA JúniorTreinamento DBA Júnior IITreinamento Oracle Backup e Recovery

Já trabalho como DBA e enfrento problemas de desempenho:Treinamento Oracle Performance Diagnostic e TuningTreinamento Oracle Performance Tuning – SQL

Já sou um DBA, e usamos RAC:Treinamento Oracle RAC

Já sou um DBA, e usamos Data Guard:Treinamento Oracle Data Guard

Já sou um DBA, e usamos MySQL:Treinamento MySQL

Page 16: DBA Júnior - NERV

16

16

Certificação

Page 17: DBA Júnior - NERV

17

Certificação

- Suas Certificações devem seguir sua carreira. - Não passar na prova faz parte do jogo.

Page 18: DBA Júnior - NERV

18

Certificações 1o Nível

Bancos de DadosOracle: Oracle Database Administrator Certified AssociateSQL Server: Microsoft Certified Solutions AssociateMySQL: Oracle Certified Associate, MySQL 5

InfraestruturaLinux: LPIC-1Linux: Red Hat Certified System AdministratorAIX: IBM Certified OperatorVirtualização: VMware Certified AssociateVirtualização: Hyper-V: MCITP: Virtualization AdministratorWindows Server: Microsoft Certified Solutions AssociateCISCO: CCENT Cisco Certified Entry Networking TechnicianStorage: IBM Certified Specialist - High Volume Storage FundamentalsStorage: NetApp Certified Data Management Administrator

GerenciamentoITIL

Page 19: DBA Júnior - NERV

19

Brain Dumps

Page 20: DBA Júnior - NERV

20

Múltiplos Bancos de Dados

Page 21: DBA Júnior - NERV

21

Múltiplos Bancos de Dados

Page 22: DBA Júnior - NERV

22

Linux

Sistema Operacional, Virtualização, Redes, Storage

Page 23: DBA Júnior - NERV

23

Alta x Baixa plataforma

Page 24: DBA Júnior - NERV

24

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)

Page 25: DBA Júnior - NERV

2525

História do Unix

Page 26: DBA Júnior - NERV

26

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

Page 27: DBA Júnior - NERV

27

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

Page 28: DBA Júnior - NERV

28

Linux Homologados para Oracle Database 12cR2

Page 29: DBA Júnior - NERV

29

Download OEL 6

Page 30: DBA Júnior - NERV

30

Download OEL 6

Page 31: DBA Júnior - NERV

31

Download OEL 6

Page 32: DBA Júnior - NERV

32

Download OEL 6

Page 33: DBA Júnior - NERV

33

Instalação OEL 6

Page 34: DBA Júnior - NERV

34

Instalação OEL 6

Page 35: DBA Júnior - NERV

35

Instalação OEL 6

Page 36: DBA Júnior - NERV

36

Instalação OEL 6

Page 37: DBA Júnior - NERV

37

Instalação OEL 6

Page 38: DBA Júnior - NERV

38

Instalação OEL 6

Page 39: DBA Júnior - NERV

39

Instalação OEL 6

Page 40: DBA Júnior - NERV

40

Instalação OEL 6

Page 41: DBA Júnior - NERV

41

Instalação OEL 6

Page 42: DBA Júnior - NERV

42

Instalação OEL 6

Page 43: DBA Júnior - NERV

43

Instalação OEL 6

Page 44: DBA Júnior - NERV

44

Instalação OEL 6

Page 45: DBA Júnior - NERV

45

Instalação OEL 6

Page 46: DBA Júnior - NERV

46

Instalação OEL 6

Page 47: DBA Júnior - NERV

47

Instalação OEL 6

Page 48: DBA Júnior - NERV

48

Instalação OEL 6

Page 49: DBA Júnior - NERV

4949

Instalação OEL 6

Page 50: DBA Júnior - NERV

50

Instalação OEL 6

Page 51: DBA Júnior - NERV

51

Instalação OEL 6

Page 52: DBA Júnior - NERV

52

Instalação OEL 6

Page 53: DBA Júnior - NERV

53

Instalação OEL 6

Page 54: DBA Júnior - NERV

54

Instalação OEL 6

Page 55: DBA Júnior - NERV

55

Diretórios Linux

Page 56: DBA Júnior - NERV

56

Instalação OEL 6

Page 57: DBA Júnior - NERV

57

Instalação OEL 6

Page 58: DBA Júnior - NERV

58

Instalação OEL 6

Page 59: DBA Júnior - NERV

59

Instalação OEL 6

Page 60: DBA Júnior - NERV

60

Instalação OEL 6

Page 61: DBA Júnior - NERV

61

Instalação OEL 6

Page 62: DBA Júnior - NERV

62

Instalação OEL 6

Page 63: DBA Júnior - NERV

63

Instalação OEL 6

Page 64: DBA Júnior - NERV

64

Instalação OEL 6

Page 65: DBA Júnior - NERV

65

Instalação OEL 6

Page 66: DBA Júnior - NERV

66

Instalação OEL 6

Page 67: DBA Júnior - NERV

67

Instalação OEL 6

Page 68: DBA Júnior - NERV

68

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

Page 69: DBA Júnior - NERV

69

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 teste# ls -lh testeO que estes comandos fizeram?

Page 70: DBA Júnior - NERV

70

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# grep -E 'fonts|gedit' install.log

# 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

Page 71: DBA Júnior - NERV

71

Gerenciamento de Pacotes

Coloque 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++

Page 72: DBA Júnior - NERV

72

Particionamento e Sistema de Arquivos

Crie uma partição com o espaço livre.# findmnt# findmnt -l# fdisk -l# fdisk /dev/sdaDigite: p <Enter>Digite: n <Enter><Enter><Enter>Digite: p <Enter>Digite: w <Enter>

# fdisk -l

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

O que aconteceu?

Page 73: DBA Júnior - NERV

73

Particionamento e Sistema de Arquivos

Crie 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

Page 74: DBA Júnior - NERV

74

Services

Verifique 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

Page 75: DBA Júnior - NERV

75

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

Page 76: DBA Júnior - NERV

76

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?

Page 77: DBA Júnior - NERV

77

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

Page 78: DBA Júnior - NERV

78

Shell

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

Page 79: DBA Júnior - NERV

79

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

Page 80: DBA Júnior - NERV

80

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?

Page 81: DBA Júnior - NERV

81

Desempenho

Page 82: DBA Júnior - NERV

82

Desempenho

$ free

$ vmstat$ vmstat -w$ vmstat 2$ vmstat -w 2$ vmstat -w 5

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

$ top

Page 83: DBA Júnior - NERV

83

Logs

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

Page 84: DBA Júnior - NERV

84

Virtualização Hard x Soft

Page 85: DBA Júnior - NERV

85

Produtos de Virtualização Oracle

Page 86: DBA Júnior - NERV

86

VMs e Containers

Page 87: DBA Júnior - NERV

87

Produtos de Virtualização Oracle

Page 88: DBA Júnior - NERV

88

Instalação Oracle VirtualBox

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

Page 89: DBA Júnior - NERV

89

Criação VMs

Page 90: DBA Júnior - NERV

90

Criação VMs

Page 91: DBA Júnior - NERV

91

Criação VMs

Page 92: DBA Júnior - NERV

92

Criação VMs

Page 93: DBA Júnior - NERV

93

Criação VMs

Page 94: DBA Júnior - NERV

94

Criação VMs

Page 95: DBA Júnior - NERV

95

Criação VMs

Page 96: DBA Júnior - NERV

96

Configuração VMs

Page 97: DBA Júnior - NERV

97

Configuração VMs

Page 98: DBA Júnior - NERV

98

Configuração VMs

Page 99: DBA Júnior - NERV

99

Configuração VMs

Page 100: DBA Júnior - NERV

100

Configuração VMs

Page 101: DBA Júnior - NERV

101

Configuração VMs

Page 102: DBA Júnior - NERV

102

Configuração VMs

Page 103: DBA Júnior - NERV

103

Configuração VMs

Page 104: DBA Júnior - NERV

104

Configuração VMs

Page 105: DBA Júnior - NERV

105

Configuração VMs

Page 106: DBA Júnior - NERV

106

Configuração VMs

Page 107: DBA Júnior - NERV

107

Configuração VMs

Page 108: DBA Júnior - NERV

108

Configuração VMs

Page 109: DBA Júnior - NERV

109

Configuração VMs

Page 110: DBA Júnior - NERV

110

Configuração VMs

Page 111: DBA Júnior - NERV

111

Configuração VMs

Page 112: DBA Júnior - NERV

112

Configuração VMs

Page 113: DBA Júnior - NERV

113

Configuração VMs

Page 114: DBA Júnior - NERV

114

PausePause VMs

Page 115: DBA Júnior - NERV

115

Clone VMs

Page 116: DBA Júnior - NERV

116

Clone VMs

Page 117: DBA Júnior - NERV

117

Clone VMs

Page 118: DBA Júnior - NERV

118

Clone VMs

Page 119: DBA Júnior - NERV

119

Snapshot VMs

Page 120: DBA Júnior - NERV

120

Snapshot VMs

Page 121: DBA Júnior - NERV

121

Snapshot VMs

Page 122: DBA Júnior - NERV

122

Export / Import Appliance

Page 123: DBA Júnior - NERV

123

Export / Import Appliance

Page 124: DBA Júnior - NERV

124

Export / Import Appliance

Page 125: DBA Júnior - NERV

125

Export / Import Appliance

Page 126: DBA Júnior - NERV

126

Export / Import Appliance

Page 127: DBA Júnior - NERV

127

Redes TCP/IP

● IP / Mask / Gateway / DNS – ifconfig / route / /etc/resolv.conf● DHCP● WAN / LAN / VLAN● Routing / Firewall / Proxy / IDS / IPSQual seu IP / Mask / Gateway / DNS?

Page 128: DBA Júnior - NERV

128

Configure as placas de rede.

Configuração de Rede

Page 129: DBA Júnior - NERV

129

ssh / scp / ftp

Execute 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

Copie um arquivo de seu vizinho para outro vizinho.# scp root@nerv02:/root/install.log root@nerv03:/tmp/install.new

Page 130: DBA Júnior - NERV

130

mstsc / rdesktop

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

Page 131: DBA Júnior - NERV

131

VNC / Xserver

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

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

Page 132: DBA Júnior - NERV

132

Windows Share

Crie 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.99/temp -o username=Administrator,password=Nerv2021 /mnt/windows

Page 133: DBA Júnior - NERV

133

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

Page 134: DBA Júnior - NERV

134

RAID

Page 135: DBA Júnior - NERV

135

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

NFS Server

Page 136: DBA Júnior - NERV

136

Adicionar no arquivo /etc/fstab a linha abaixo.# vi /etc/fstab

...192.168.0.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?

NFS Client

Page 137: DBA Júnior - NERV

137

iSCSI Initiator

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

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

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

Page 138: DBA Júnior - NERV

138

Particione o novo disco.# fdisk /dev/sdbDigite: n <Enter>Digite: p <Enter>Digite: 1 <Enter><Enter><Enter>Digite: w <Enter>

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

iSCSI Initiator

Page 139: DBA Júnior - NERV

139

MySQL

Page 140: DBA Júnior - NERV

140

Por que MySQL?

Page 141: DBA Júnior - NERV

141

Evolução MySQL

Page 142: DBA Júnior - NERV

142

Edições - Community

Page 143: DBA Júnior - NERV

143

Edições - Enterprise

Page 144: DBA Júnior - NERV

144

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 ~]#

Page 145: DBA Júnior - NERV

145

Instalação

Page 146: DBA Júnior - NERV

146

Instalação

Page 147: DBA Júnior - NERV

147

Instalação

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

# grep password /var/log/mysqld.log

# /usr/bin/mysqladmin -p -u root password 'Nerv2021.'# mysql -u root -pNerv2021.

Page 148: DBA Júnior - NERV

148

Verificação

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

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

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

Page 149: DBA Júnior - NERV

149

Programas Cliente

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

# mysql -u root -pNerv2021. -e "SHOW STATUS"

# mysql -u root -pNerv2021. -e "SHOW STATUS" > status.txt# cat status.txt# mysql -t -u root -pNerv2021. -e "SHOW STATUS" > status.txt# cat status.txt# mysql -E -u root -pNerv2021. -e "SHOW STATUS" > status.txt# cat status.txt

# echo "SHOW STATUS" >> script.sql# cat script.sql# mysql -t -u root -pNerv2021. < script.sql# mysql -t -u root -pNerv2021. < script.sql > status.txt# cat status.txt

Page 150: DBA Júnior - NERV

150

Engines

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

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

Page 151: DBA Júnior - NERV

151

Processos e Threads

Execute um teste de carga no MySQL.# yum -y install mysql-test# mysqlslap --user=root --password=Nerv2021. --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 -pNerv2021. status

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

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

Page 152: DBA Júnior - NERV

152

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 = 2Mshort_bufer_size = 2Mjoin_bufer_size = 2M

Page 153: DBA Júnior - NERV

153

Parâmetros de recuperação

Altere 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';

Page 154: DBA Júnior - NERV

154

Bancos de Dados

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

Page 155: DBA Júnior - NERV

155

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

Page 156: DBA Júnior - NERV

156

Tabelas

mysql> 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?

Page 157: DBA Júnior - NERV

157

Transações e Isolamento

Execute INSERT de 10 registros na tabela teste.mysql> INSERT INTO teste VALUES (1, 'A', 'AAAAAAAAAA');mysql> INSERT INTO teste VALUES (1, 'A', 'AAAAAAAAAA');mysql> INSERT INTO teste VALUES (1, 'A', 'AAAAAAAAAA');mysql> INSERT INTO teste VALUES (1, 'A', 'AAAAAAAAAA');mysql> INSERT INTO teste VALUES (1, 'A', 'AAAAAAAAAA');mysql> INSERT INTO teste VALUES (1, 'A', 'AAAAAAAAAA');mysql> INSERT INTO teste VALUES (1, 'A', 'AAAAAAAAAA');mysql> INSERT INTO teste VALUES (1, 'A', 'AAAAAAAAAA');mysql> INSERT INTO teste VALUES (1, 'A', 'AAAAAAAAAA');mysql> INSERT INTO teste2 SELECT * from teste;mysql> SELECT * FROM teste;mysql> SELECT * FROM teste2;

Execute um UPDATE em todos 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?

Page 158: DBA Júnior - NERV

158

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.

Page 159: DBA Júnior - NERV

159

Bin Logs

Adicione 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?

Page 160: DBA Júnior - NERV

160

mysqldump

Execute um backup via mysqldump.# mysqldump -u root -pNerv2021. nerv > nerv.sql# mysqldump -u root -pNerv2021. --all-databases > nerv01.sql

# mysqldump -u root -pNerv2021. --single-transaction --master-data=2 --all-databases > nerv01.sql

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

Page 161: DBA Júnior - NERV

161

Alta Disponibilidade

MySQL Replication

Page 162: DBA Júnior - NERV

162

Alta Disponibilidade

DRBD / Pacemaker / Corosync

Page 163: DBA Júnior - NERV

163

Alta Disponibilidade

Windows Server Failover Clustering

Page 164: DBA Júnior - NERV

164

Alta Disponibilidade

MySQL Cluster

Page 165: DBA Júnior - NERV

165

Alta Disponibilidade

InnoDB Cluster

Page 166: DBA Júnior - NERV

166

Oracle

Page 167: DBA Júnior - NERV

167

Versões e Edições

● Oracle Database Express Edition● Oracle Database Personal Edition● Oracle Database Standard Edition One (<= 11gR2)● Oracle Database Standard Edition (<= 11gR2)● Oracle Database Standard Edition 2● Oracle Database Enterprise Edition

Page 168: DBA Júnior - NERV

168

Versões e Edições

Page 169: DBA Júnior - NERV

169

Instalação Oracle

Page 170: DBA Júnior - NERV

170

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/jlib

ulimit -u 16384 -n 65536

Instalação Oracle

Page 171: DBA Júnior - NERV

171

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

Page 172: DBA Júnior - NERV

172

Instalação Oracle

Page 173: DBA Júnior - NERV

173

Instalação Oracle

Page 174: DBA Júnior - NERV

174

Instalação Oracle

Page 175: DBA Júnior - NERV

175

Instalação Oracle

Page 176: DBA Júnior - NERV

176

Instalação Oracle

Page 177: DBA Júnior - NERV

177

Instalação Oracle

Page 178: DBA Júnior - NERV

178

Instalação Oracle

Page 179: DBA Júnior - NERV

179

Instalação Oracle

Page 180: DBA Júnior - NERV

180

Instalação Oracle

Page 181: DBA Júnior - NERV

181

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]:<ENTER>...Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] :yes...

Page 182: DBA Júnior - NERV

182

Instalação Oracle

Page 183: DBA Júnior - NERV

183

Configuração Listener - netca

Page 184: DBA Júnior - NERV

184

Configuração Listener

Page 185: DBA Júnior - NERV

185

Configuração Listener

Page 186: DBA Júnior - NERV

186

Configuração Listener

Page 187: DBA Júnior - NERV

187

Configuração Listener

Page 188: DBA Júnior - NERV

188

Configuração Listener

Page 189: DBA Júnior - NERV

189

Configuração Listener

Page 190: DBA Júnior - NERV

190

Configuração Listener

Page 191: DBA Júnior - NERV

191

Criação do Banco de Dados - dbca

Page 192: DBA Júnior - NERV

192

Criação do Banco de Dados

Page 193: DBA Júnior - NERV

193

Criação do Banco de Dados

Page 194: DBA Júnior - NERV

194

Criação do Banco de Dados

Page 195: DBA Júnior - NERV

195

Criação do Banco de Dados

Page 196: DBA Júnior - NERV

196

Criação do Banco de Dados

/u01/oradata/nerv01/FRA/{DB_UNIQUE_NAME}

Page 197: DBA Júnior - NERV

197

Criação do Banco de Dados

Page 198: DBA Júnior - NERV

198

Criação do Banco de Dados

Page 199: DBA Júnior - NERV

199

Criação do Banco de Dados

Page 200: DBA Júnior - NERV

200

Criação do Banco de Dados

Page 201: DBA Júnior - NERV

201

Criação do Banco de Dados

Page 202: DBA Júnior - NERV

202

Criação do Banco de Dados

Page 203: DBA Júnior - NERV

203

Criação do Banco de Dados

Page 204: DBA Júnior - NERV

204

Criação do Banco de Dados

Page 205: DBA Júnior - NERV

205

Criação do Banco de Dados

Page 206: DBA Júnior - NERV

206

Criação do Banco de Dados

Page 207: DBA Júnior - NERV

207

Criação do Banco de Dados

Page 208: DBA Júnior - NERV

208

Criação do Banco de Dados

Page 209: DBA Júnior - NERV

209

SQL*Plus

Verifique 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/Nerv2021@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

Page 210: DBA Júnior - NERV

210

SQL*Plus

Verifique 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...SELECT STATUS, HOST_NAME FROM V$INSTANCE/...

Execute o arquivo no SQL*Plus.SQL> HOST OU SQL> !SQL> HOST vi verifica_host.sql OU SQL> !vi verifica_host.sql...SELECT STATUS, HOST_NAME FROM V$INSTANCE;...

SQL> START verifica_host.sql OU SQL> @verifica_host.sql

Page 211: DBA Júnior - NERV

211

SQL*Plus

Execute o SQL abaixo:SQL> SELECT FILE_ID, FILE_NAME FROM DBA_DATA_FILES;

Crie 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.

Page 212: DBA Júnior - NERV

212

Alert Log

Verifique o Alert Log.$ tail -f /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/alert_ORCL.log

$ORACLE_BASE/diag/rdbms/<BancoEmMinúsculo>/<Instância>/trace/alert_<Instância>.log

Page 213: DBA Júnior - NERV

213

Parâmetros de memória

Verificando 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;SQL> ALTER SYSTEM SET SGA_MAX_SIZE=5G SCOPE=SPFILE;SQL> SHOW PARAMETER SGA

Page 214: DBA Júnior - NERV

214

STARTUP / SHUTDOWNEstados da InstânciaSHUTDOWNSTARTUPMOUNTOPEN

Comandos STARTSQL> STARTUP;SQL> STARTUP NOMOUNT;SQL> ALTER DATABASE MOUNT;SQL> STARTUP MOUNT;SQL> ALTER DATABASE OPEN;SQL> STARTUP RESTRICT;SQL> STARTUP FORCE;

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

Page 215: DBA Júnior - NERV

215

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;

Page 216: DBA Júnior - NERV

216

Estruturas Físicas e Lógicas

Page 217: DBA Júnior - NERV

217

Estruturas lógicas e físicas

TABLESPACE SEGMENTSEXTENTSDATA BLOCKS

DATAFILE

Page 218: DBA Júnior - NERV

218

Estruturas lógicas e físicas

Page 219: DBA Júnior - NERV

219

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

Verifique o Espaço Lógico.SQL> SELECT TABLESPACE_NAME, TO_CHAR(SUM(BYTES)/1024/1024) MBFROM 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;

Crie uma tabela na TABLESPACE, e verifique novamente os Espaços Físico e Lógico.SQL> CREATE TABLE TESTE TABLESPACE TESTE AS SELECT * FROM ALL_OBJECTS;O que aconteceu?

Tablespaces e Datafiles

Page 220: DBA Júnior - NERV

220

Aumente o DATAFILE, crie a tabela, insira dados nela, e verifique novamente os Espaços Físico e Lógico.SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ORCL/teste01.dbf' RESIZE 100M;SQL> CREATE TABLE TESTE TABLESPACE TESTE AS SELECT * FROM ALL_OBJECTS;SQL> INSERT INTO TESTE SELECT * FROM TESTE;SQL> INSERT INTO TESTE SELECT * FROM TESTE;SQL> INSERT INTO TESTE SELECT * FROM TESTE;...SQL> COMMIT;O que aconteceu?

Altere o DATAFILE, crie a tabela, insira mais dados nela, e verifique novamente os Espaços Físico e Lógico.SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ORCL/teste01.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

Adicione um DATAFILE, insira mais dados na tabela, 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

Page 221: DBA Júnior - NERV

221

O que é um schema?

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

Page 222: DBA Júnior - NERV

222

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 Nerv2021;

Tente conectar com o usuário TESTE.$ sqlplus TESTE/Nerv2021O 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

Page 223: DBA Júnior - NERV

223

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

Page 224: DBA Júnior - NERV

224

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

Page 225: DBA Júnior - NERV

225

V$SESSION_WAIT

Execute 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';

SQL> CREATE TABLE T1 AS SELECT * FROM ALL_OBJECTS;SQL> INSERT INTO T1 SELECT * FROM T1;SQL> INSERT INTO T1 SELECT * FROM T1;SQL> INSERT INTO T1 SELECT * FROM T1;SQL> INSERT INTO T1 SELECT * FROM T1;SQL> INSERT INTO T1 SELECT * FROM T1;SQL> INSERT INTO T1 SELECT * FROM T1;SQL> INSERT INTO T1 SELECT * FROM T1;SQL> INSERT INTO T1 SELECT * FROM T1;SQL> COMMIT;

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

Page 226: DBA Júnior - NERV

226

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

SQL> GRANT UNLIMITED TABLESPACE TO TESTE;

$ impdp '"/ AS SYSDBA"' REMAP_SCHEMA=HR:TESTE DUMPFILE=HR.dump

$ impdp '"/ AS SYSDBA"' TABLES=HR.EMPLOYEES REMAP_TABLE=HR.EMPLOYEES:EMPLOYEES2 DUMPFILE=HR.dump EXCLUDE=COMMENT,CONSTRAINT,INDEX,TRIGGER

Page 227: DBA Júnior - NERV

227

Estruturas físicas

SQL> 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;SQL> SHOW PARAMETER SPFILE;

$ rman target /RMAN> LIST ARCHIVELOG ALL;

Page 228: DBA Júnior - NERV

228

Configuração Básica RMAN

Execute 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';RMAN> SHOW All;

Page 229: DBA Júnior - NERV

229

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;

Page 230: DBA Júnior - NERV

230

Alta Disponibilidade

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

Page 231: DBA Júnior - NERV

231

Perguntas?

Ricardo Portilho [email protected]