Oracle Data Guard 11g com VirtualBox – Parte 3
February 15, 2013

Introdução

Parte 1

Parte 2

Parte 3

Parte 4

Parte 5

Parte 6

Na parte 2 vimos como configurar e instalar o software do Oracle Database 11g.

Como é necessário duas máquinas virtuais para o nosso teste com Oracle Data Guard 11g, iremos então clonar literalmente a máquina DB Primary para a máquina a nova máquina virtual chamada DB Dataguard. Essa ação é muito fácil de ser feita com o VirtualBox, apenas com alguns cliques temos nossa máquina clonada.

Após a clonagem, teremos os seguintes ambientes para os testes de Dataguard:

VMS DG

Clonando a VM

Para clonar a VM DB Primary, siga os passos abaixos:

dg90

dg91

 

Clique na opção Clone … para abrir o assistente de configuração da nova máquina virtual.

dg92

Defina o nome como DB Dataguard.

dg93

 

Escolha a opção Full clone para iniciar a clonagem da VM.

dg94

dg95

 

 

Nesse ponto temos duas máquinas virtuais, uma chamada DB Primary que é nosso banco de dados produção e a VM DB Dataguard que é o Oracle Dataguard do banco de dados da máquina DB Primary.

Vamos iniciar a máquina DB Dataguard para iniciarmos as configurações nessa máquina.

dg96

dg97

 

Com a máquina ligada, clique em Administration depois Network.

dg98

 

Clique no botão EDIT para a interface eth0.

dg99

 

Defina o IP 20.0.0.20 para o endereço ip da interface.

dg100

Confirme a operação.

dg101

dg102

 

Agora na aba DNS mude o hostname para standdg.oracle.com

dg103

 

Agora precismos ativar a interface, para isso clique no botão Activate.

dg104

dg105

dg106

dg107

 

Agora, precisamos alterar o arquivo host da máquina, para isso, vamos conectar na máquina de Dataguard e mudar o arquivo de configuração /etc/hosts

FlavioSoares:VirtualBox VMs flaviosoares$ ssh root@20.0.0.20
The authenticity of host '20.0.0.20 (20.0.0.20)' can't be established.
RSA key fingerprint is 66:86:82:d1:f4:72:1a:a0:55:c3:b2:65:f8:64:1f:17.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '20.0.0.20' (RSA) to the list of known hosts.
root@20.0.0.20's password: 
Last login: Thu Jan 31 23:37:17 2013
[root@standdg ~]#
[root@standdg ~]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1	localhost.localdomain localhost
::1		localhost6.localdomain6 localhost6

20.0.0.10	bancodg.oracle.com bancodg
20.0.0.20	standdg.oracle.com standdg
[root@standdg ~]# 
[root@standdg ~]# hostname
standdg.oracle.com
[root@standdg ~]# hostname -i
20.0.0.20

Por último, precisamos mudar a variável de ambiente ORACLE_SID, para o banco que será o nosso Dataguard que no nosso caso chama-se stdby para o banco de Dataguard:

[oracle@standdg ~]$ cat ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=stdby
export PATH=$ORACLE_HOME/bin:$PATH

Teste de conectividade entre as VMs

Para iniciar os testes de conectividade das máquinas, inicie a VM DB Primary.

dg108

 

Com a máquina DB Primary ligada, conecte e realizar os testes abaixos.

FlavioSoares:VirtualBox VMs flaviosoares$ ssh root@20.0.0.10
root@20.0.0.10's password: 
Last login: Thu Jan 31 23:59:23 2013 from 20.0.0.1
[root@bancodg ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1	localhost.localdomain localhost
::1		localhost6.localdomain6 localhost6

20.0.0.10	bancodg.oracle.com bancodg
20.0.0.20       standdg.oracle.com standdg

[root@bancodg ~]# hostname

bancodg.oracle.com

[root@bancodg ~]# ping standdg
PING standdg.oracle.com (20.0.0.20) 56(84) bytes of data.
64 bytes from standdg.oracle.com (20.0.0.20): icmp_seq=1 ttl=64 time=1.30 ms
64 bytes from standdg.oracle.com (20.0.0.20): icmp_seq=2 ttl=64 time=0.237 ms
64 bytes from standdg.oracle.com (20.0.0.20): icmp_seq=3 ttl=64 time=0.404 ms
64 bytes from standdg.oracle.com (20.0.0.20): icmp_seq=4 ttl=64 time=0.358 ms

--- standdg.oracle.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.237/0.577/1.309/0.427 ms

[root@bancodg ~]# ping standdg.oracle.com
PING standdg.oracle.com (20.0.0.20) 56(84) bytes of data.
64 bytes from standdg.oracle.com (20.0.0.20): icmp_seq=1 ttl=64 time=0.247 ms
64 bytes from standdg.oracle.com (20.0.0.20): icmp_seq=2 ttl=64 time=0.340 ms
64 bytes from standdg.oracle.com (20.0.0.20): icmp_seq=3 ttl=64 time=1.00 ms

--- standdg.oracle.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.247/0.529/1.001/0.336 ms

Agora faça o teste inverso, da máquina virtual DB Dataguard faça o seguinte:

[root@standdg ~]# hostname
standdg.oracle.com
[root@standdg ~]# ping bancodg
PING bancodg.oracle.com (20.0.0.10) 56(84) bytes of data.
64 bytes from bancodg.oracle.com (20.0.0.10): icmp_seq=1 ttl=64 time=0.181 ms
64 bytes from bancodg.oracle.com (20.0.0.10): icmp_seq=2 ttl=64 time=0.363 ms
64 bytes from bancodg.oracle.com (20.0.0.10): icmp_seq=3 ttl=64 time=0.278 ms

--- bancodg.oracle.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.181/0.274/0.363/0.074 ms

[root@standdg ~]# ping bancodg.oracle.com
PING bancodg.oracle.com (20.0.0.10) 56(84) bytes of data.
64 bytes from bancodg.oracle.com (20.0.0.10): icmp_seq=1 ttl=64 time=0.134 ms
64 bytes from bancodg.oracle.com (20.0.0.10): icmp_seq=2 ttl=64 time=0.247 ms
64 bytes from bancodg.oracle.com (20.0.0.10): icmp_seq=3 ttl=64 time=0.379 ms

--- bancodg.oracle.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.134/0.253/0.379/0.100 ms

Criando o LISTENER

Aproveitando que as duas VMs estão ligadas e seus host atualizados, vamos aproveitar e criar o listener nelas. Para isso conecte com o usuário oracle em cada uma das máquina e realize os passos abaixo:

dg109

Execute o comando netca

dg110

dg111

dg112

dg113

dg114

dg116

dg117

dg118

dg119

 

Acima está apenas os passos da máquina DB Primary (bancodg), é necessário realizar os mesmos passos para a máquina DB Dataguard (standdg).

Protegendo o Oracle – Parte 3
February 14, 2013

No dia seguinte em que publiquei a parte 1 da série sobre segurança de banco de dados, meu amigo Gerson Vasconcelos Jr. enviou através do e-mail um trabalho que havia feito na faculdade que poderia ajudar a fazer os próximos post de segurança, e realmente .. o documento é fantástico! Tem várias notas muito bem explicadas de como configurar o Oracle para trabalhar de forma segura!

O Gerson para quem não sabe, além de ser um grande amigo e um grande DBA que essa carreira deu o privilégio de conhecer, o cara também é blogueiro, seu blog é o http://www.diaadiaoracle.com.br/ e ele escreve também no Grupo de Profissionais Oracle no blog Dia a Dia Oracle.

Como ele mesmo disse no e-mail: “Conhecimento é a única coisa que quando você divide, se multiplica!”, aqui está o trabalho e a apresentação do Gerson (claro pedi a permissão dele para divulgar):  http://flaviosoares.com/docs/security/trabalho_gerson

Entre as notas mencionadas por Gerson no trabalho, a que achei mais interessante foi sobre o parâmetro ULT_FILE_DIR, para quem não sabe esse parâmetro pode destruir seu ambiente! Caso o usuário oracle tenha privilégio, você pode criar um arquivo através do utilitário utl_file bem em cima de um arquivo crítico do SO, ae já sabe … adeus servidor! Mas, como contornar isso? Leia o trabalho, que lá o Gerson explica melhor! :)

Gersão, está devendo uma passada aqui em São Paulo para a gente tomar uma ein!  :D um abraço e muito obrigado mesmo!