domingo, 4 de março de 2012

Clonagem manual de um banco de dados Oracle em Linux


Este artigo descreve os passos necessários para clonar manualmente uma instalação existente do banco de dados Oracle para um novo servidor Linux. Antes de iniciar o processo é interessante ler as seguintes notas:


·      Para fazer uma clonagem num ambiente de produção esse método pode não ser recomendado. O ideal é fazer as instalações e clonar somente a base de dados, utilizando “export/import” ou via “backup/restore”
·    O método apresentado assume que não há serviços relacionados ao cluster, portanto, não abrange as instalações usando o ASM ou RAC.
·      Este método assume que a base de dados origem e a base de dados destino têm exatamente a mesma configuração. Ou seja, todos os pré-requisitos da Oracle foram executados no servidor de destino. Neste exemplo, a diferença entre os dois servidores é o nome do servidor (hostname) e endereço IP (TCP/IP).
·     Existem várias notas do suporte Oracle em instalações usando o Oracle Universal Installer (OUI) e o Grid Control (GC), deve-se considerar essas notas antes de utilizar este método de clonagem. Veja o artigo: Master Note For Cloning Oracle Database Server ORACLE_HOME's Using the Oracle Universal Installer (OUI) (Doc ID 1154613.1).

Com esses pontos em mente, aqui estão a lista dos passos necessários para clonar uma instalação existente do banco de dados para um novo servidor.


  • Baixar o banco de dados Oracle
  • Criar um arquivo de “backup” (TAR File)
  • Transferir o arquivo (TAR File)
  • Extrair o arquivo (TAR File)
  • Verificar as permissões dos arquivos
  • Configurar os scripts de “root”
  • Configurar os arquivos de ambiente
  • Levantar o banco de dados

Baixar o banco de dados Oracle

Desativar todas os serviços Oracle relacionados, incluindo o Grid Control, o banco de dados e o “listener”.


$ # EM

$ emctl stop dbconsole

 

$ # database and listener (>=10g)

$ dbshut $ORACLE_HOME

 

$ # listener (<10g)

$ lsnrctl stop

 

Criar um arquivo de “backup” (TAR File)



Executar o comando “TAR” e opcionalmente compactar o ponto de montagem que contém o software Oracle. Neste caso, todos os produtos de software Oracle e arquivos de dados estão sob o diretório "/u01". Executar o seguinte comando como usuário "root".

# tar -cvf /tmp/u01.tar /u01
# gzip /tmp/u01.tar

Quando estiver finalizado, pode-se reiniciar o banco de dados Oracle no servidor de origem, levantando o “listener”, o banco de dados e o Grid Control, ver o item “Levantar o banco de dados Oracle”.

 

Transferir o arquivo (TAR File)

Deve-se copiar o arquivo do servidor de origem para o servidor de destino. Para essa transferência será utilizado o comando SCP.


# scp /tmp/u01.tar.gz root@192.108.1.2:/tmp/u01.tar.gz

 

Extrair o arquivo (TAR File)

Descompactar e extrair o conteúdo do arquivo TAR no servidor de destino. Executar os seguintes comandos como o usuário "root" no servidor de destino.

# gunzip /tmp/u01.tar.gz
# cd /
# tar -xvf /tmp/u01.tar

 

Verificar as permissões dos arquivos

Verificar as permissões dos arquivos "/u01" diretórios e seus conteúdos. As permissões devem coincidir com as permissões do servidor de origem, caso contrário deve-se alterá-la, usar:

# chown -R oracle:oinstall /u01

 

Configurar os scripts de “root”

Executar o script “orainstRoot.sh”, gerados como parte da instalação original, o servidor de destino como o usuário "root".


# /u01/app/oraInventory/orainstRoot.sh

# /u01/app/oracle/product/11.2.0/db_1/root.sh

 

 

Configurar os arquivos de ambiente



Ajustar o arquivo ".bash_profile" como parte do programa de configuração do servidor de destino, copie o arquivo de origem para o servidor de destino.


# scp /home/oracle/.bash_profile oracle@192.108.1.2:/home/oracle/.bash_profile


Editar o arquivo ".bash_profile" no servidor de destino, alterar o valor correto para a variável de ambiente ORACLE_SID.
Alterar o nome de “host” ou “IP” referências nos arquivos de "listener.ora" e "tnsnames" no diretório "$ORACLE_HOME/network/admin".


Editar o arquivo "/etc/oratab" certificando-se que todas as instâncias estão referenciadas corretamente.


DB11G:/u01/app/oracle/product/11.2.0/db_1:Y

 

Levantar o banco de dados Oracle

Levantar o “listener” e o banco de dados.

$ # listener (<10g)
$ lsnrctl start

$ # database and listener (>=10g)
$ dbstart $ORACLE_HOME


O banco de dados agora deverá funcionar normalmente no servidor de destino.



Rubens Oliveira
DBA Oracle Consultor
olivert.dba@consultant.com