Pular para o conteúdo

Como realizar Clone de ORACLE HOME

Como realizar Clone de ORACLE HOME

Este procedimento tem como principal objetivo realizar um CLONE de um ORACLE HOME existente em um instalação do Oracle Database (10g ou 11g) em ambiente Linux/Unix. O Clone consiste em um cópia exata de arquivos binários e arquivos de configuração.

Algumas características relevantes:

  • Otimização de Tempo para Instalação de um Novo ORACLE HOME;
  • Dispensa necessidade de mídia de instalação;
  • Não necessita indisponibilidade do ORACLE HOME existente;
  • Segurança (Não necessita transferência de arquivos);

Procedimento

Passo 1 (Pré-Requisito)

Instalação do Oracle Database (10g ou 11g)

Passo 2

Executar uma cópia do ORACLE HOME de origem:

* Executar os passos abaixo como usuário “root”

cp -Rpf <ORACLE_HOME_ORIGEM> <ORACLE_HOME_DESTINO>

** Observações **

Não é necessário realizar “shutdown” de nenhum Database em execução neste ORACLE HOME.

É recomendável a verificação de espaço em disco do File System de destino.

Exemplo:

cp -Rp /u01/app/oracle/product/11.2.0.3/dbhome_1 /u01/app/oracle/product/11.2.0.3/dbhome_2

Passo 3

Ajustar Links Simbólicos

* Executar os passos abaixo como usuário “root”

Neste passo deve-se conferir todos os links simbólicos do ORACLE HOME de destino. Procurar por

possíveis links que ficaram com PATH do ORACLE HOME de origem. Caso existam, devem ser recriados.

Também é importante conferir todas as as permissões (devem ser iguais ao ORACLE HOME de Origem – a dica é utilizar  a opção “p” do comando “cp” ou “tar”)

Abaixo as permissões comuns:

<ORACLE_HOME_DESTINO>/lib 
rm libclntsh.so.10.1 
ln -s libclntsh.so libclntsh.so.10.1 

<ORACLE_HOME_DESTINO>/bin 
rm lbuilder 
ln -s ../nls/lbuilder/lbuilder  lbuilder

Passo 4

Ajustar Permissões

* Executar os passos abaixo como usuário “root”

chown -R oracle:oinstall <ORACLE_HOME_DESTINO>

Passo 5

Realizar o clone

Garantir que o arquivo “/etc/oraInst.loc” exista. Se não existir, crie o mesmo e utilize a opção “inventory_loc=<path_to_oraInventory>” no comando abaixo,  especificando o caminho.

* Executar os passos abaixo como usuário “root”

cd <ORACLE_HOME_DESTINO>/clone/bin perl clone.pl 

ORACLE_HOME="<ORACLE_HOME_DESTINO>" 
ORACLE_HOME_NAME="<NOME_UNICO_NOVO_HOME>" 
ORACLE_BASE="<ORACLE_BASE>" 
OSDBA_GROUP=<OSDBA_privileged_group> 
OSOPER_GROUP=<OSOPER_privileged_group>

Exemplo:

cd /u01/app/oracle/product/11.2.0.3/dbhome_2/clone/bin perl clone.pl 

ORACLE_HOME="/u01/app/oracle/product/11.2.0.3/dbhome_2" 
ORACLE_HOME_NAME="OraDb11g_dbhome_2" 
ORACLE_BASE="/u01/app/oracle" 
OSDBA_GROUP=dba OSOPER_GROUP=oinstall

** Observações **

Se o oraInst.loc existir em outro caminho, deve-se editar o arquivo  <ORACLE_HOME_DESTINO>/clone/config/cs.properties e colocar a opção com o caminho correto: “-invPtrLoc <path>/oraInst.loc”

Caso não funcione, pode-se forçar com a utilização da opção:  “-ignoreSysPrereqs”

Antes de continuar, confira se o nome de ORACLE HOME (UNIQUE_NAME) não é utilizado por nenhum outro ORACLE HOME (<ORACLE_BASE>/oraInventory/ContentsXML/inventory.xml)

Caso queria utilizar um ORACLE HOME existente (NOME e/ou PATH) primeiro remova este ORACLE HOME do Inventory:

./runInstaller -detachHome ORACLE_HOME=<target_home>

Exemplo:

[oracle@servidor1 bin]$ perl clone.pl 

ORACLE_HOME="/u01/app/oracle/product/11.2.0.3/dbhome_2" 
ORACLE_HOME_NAME="OraDb11g_ dbhome_2" 
ORACLE_BASE="/u01/app/oracle" 
OSDBA_GROUP=dba 
OSOPER_GROUP=oinstall ./runInstaller -clone -wait
ForCompletion  "ORACLE_HOME=/u01/app/oracle/product/11.2.0.3/dbhome_2" "ORACLE_HOME_NAME=OraDb11g_dbhome_2" "ORACLE_BASE=/u01/app/oracle" "oracle_install_OSDBA=dba" "oracle_install_OSOPER=oinstall" -silent -noConfig -nowait 

Starting Oracle Universal Installer... 
Checking swap space: must be greater than 500 MB.   
Actual 24575 MB   
 Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-08-14_04-40-13PM. 
Please wait ...
Oracle Universal Installer, Version 11.2.0.3.0 
Production Copyright (C) 1999, 2011, Oracle. All rights reserved. Y
ou can find the log of this install session at:  /u01/app/oraInventory/logs/cloneActions2012-08-14_04-40-13PM.log ............................................................................... 100% Done. Installation in progress (Tuesday, August 14, 2012 4:40:21 PM AMT) ...............................................................................  79% Done. Install successful Linking in progress (Tuesday, August 14, 2012 4:40:25 PM AMT) Link successful 
Setup in progress (Tuesday, August 14, 2012 4:40:45 PM AMT) 
Setup successful End of install phases.(Tuesday, August 14, 2012 4:41:06 PM AMT) 
WARNING: The following configuration scripts need to be executed as the "root" user. /u01/app/oracle/product/11.2.0.3/dbhome_2/root.sh To execute the configuration scripts:     
1. Open a terminal window     
2. Log in as "root"     
3. Run the scripts The cloning of OraDb11g_dbhome_2 was successful. Please check '/u01/app/oraInventory/logs/cloneActions2012-08-14_04-40-13PM.log' for more details.

Passo 6

Executar “root.sh”

* Executar os passos abaixo como usuário “root”

<ORACLE_HOME_DESTINO>/root.sh

Exemplo:

[root@servidor1 dbhome_2]# ./root.sh 

Check /u01/app/oracle/product/11.2.0.3/dbhome_2/install/root_servidor1_2012-08-14_16-43-24.log for the output of root script 

[root@dm02db01 dbhome_2]# 
[root@dm02db01 dbhome_2]# cat /u01/app/oracle/product/11.2.0.3/dbhome_2/install/root_servidor1_2012-08-14_16-43-24.log 

Performing root user operation for Oracle 11g 
The following environment variables are set as:     
ORACLE_OWNER= oracle     
ORACLE_HOME=  /u01/app/oracle/product/11.2.0.3/dbhome_2 

Entries will be added to the /etc/oratab file as needed by Database Configuration 
Assistant when a database is created 
Finished running generic part of root script. Now product-specific root actions will be performed. 
Finished product-specific root actions. 

[root@dm02db01 dbhome_2]#

** Observações **

Verificar o aquivo de Inventário do Oracle Universal Installer (OUI)

cat /u01/app/oraInventory/ContentsXML/inventory.xml

* Observar novo ORACLE HOME

(…)

<HOME NAME="OraDb11g_dbhome_2" LOC="/u01/app/oracle/product/11.2.0.3/dbhome_2" TYPE="O" IDX="4">
   <NODE_LIST>
     <NODE NAME="servidor1"/>     <NODE NAME="servidor2"/>
     <NODE NAME="servidor3"/>     <NODE NAME="servidor4"/>
   </NODE_LIST> 

(...)

Referências

  • Cloning An Existing Oracle11g Release 2 (11.2.0.x) RDBMS Installation Using OUI [MOS ID 1221705.1]

* Este post também pode ser encontrado em:

Lembrando que este procedimento é homologado pela Oracle e tem o mesmo efeito de uma instalação comum via OUI.

Até a próxima.

Victor Armbrust

Victor Armbrust

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress