DataARTIGO

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.

Este procedimento tem como principal objetivo realizar um CLONE de um ORACLEOracle22 conteúdosOracle lança Java 26 para aumentar produtividade de desenvolvedoresDev (Back & Front) · mar 2026Oracle oferece o primeiro cluster de computação em nuvem em escala ZettaDevSecOps · jan 2025Oracle abre inscrições para o ONE, programa gratuito de formação em tecnologia e inteligência artificialData · dez 2024Ver tudo em Data HOME existente em um instalação do Oracle Database (10g ou 11g) em ambiente LinuxLinux34 conteúdosKali Linux em um Servidor VPS: como, quando e por que usar?DevSecOps · dez 2024Construindo um Windows Service ou Linux Daemon com Worker Service & .NET Core – Parte 2Dev (Back & Front) · jul 2020Criando uma WebApi utilizando .NET, Linux e VSCodeDev (Back & Front) · ago 2019Ver tudo em DevSecOps /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 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_

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”
div>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 e utilize a opção “inventory_loc=<path_to_oraInventory>” no comando abaixo, especificando o caminho. * Executar os passos abaixo como usuário “root”
<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 -waitForCompletion  "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.You 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 successfulLinking in progress (Tuesday, August 14, 2012 4:40:25 PM AMT)
Link successfulSetup in progress (Tuesday, August 14, 2012 4:40:45 PM AMT)
Setup successfulEnd 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.logPerforming root user operation for Oracle 11gThe following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=  /u01/app/oracle/product/11.2.0.3/dbhome_2Entries 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 arquivo 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] Lembrando que este procedimento é homologado pela Oracle e tem o mesmo efeito de uma instalação comum via OUI. Até a próxima.

é DBA Oracle há 7 anos, especialista em Banco de Dados Oracle, com conhecimentos em MySQL, DB2 e SQL-Server. Bacharel em Ciências da Computação pela USCS (Universidade de São Caetano do Sul). Com sólidos conhecimentos em Banco de Dados e Sistemas operacionais, possui certificações OCP 10g/11g, OCE 11g Performance Tuning, OCE 10g RAC, OCS 11g Exadata, OCA Solaris 10, OCA Mysql 5, MCITP SQL Server 2008 R2, IBM DB2 Administrator, LPIC-3, OCA Solaris 10, entre outras. Apoiador de eventos do GUOB e participante ativo no grupo de Profissionais Oracle (GPO).

Ver perfil