Ferramentas do usuário

Ferramentas do site


oracledbduplicate

Oracle Duplicate Database (From Active)

Olá, nesse artigo iremos abordar as etapas necessárias para se realizar um duplicate do banco de dados oracle a partir de uma instância ativa. (Duplicate from active database)

1 - Criar um listener dedicato ao duplicate: (etapa opcional)

vi $ORACLE_HOME/network/admin/listener.ora
LISTENER_DUP =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
  )
  • A criação de um listener dedicado ao duplicate é opcional, porém recomendada.
  • Um listener dedicado as atividades de rotina de um DBA, ajuda a ter autonomia e flexibilidade sem impactar os serviços de aplicação que consultam o banco de dados.

2 - Criar serviço estático no listener:

vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER_DUP =
 (SID_LIST =
  (SID_DESC =
  (GLOBAL_DBNAME = DUPDB)
  (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
  (SID_NAME = DUPDB)
  )
)

3 - Iniciar novo listener:

lsnrctl start LISTENER_DUP

4 - Exportar as variáveis de ambiente para a nova instância:

export ORACLE_SID=DUPDB
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1

5 - Adicionar um nova entrada no tnsnames.ora:

vi $ORACLE_HOME/network/admin/tnsnames.ora
DUPDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DUPDB)
    )
  )

6 - Criar um pfile para iniciar a instância em modo nomount:

vi /home/oracle/initDUPDB.ora
*.audit_file_dest='/u01/app/oracle/admin/DUPDB/adump'
*.audit_trail='db'
*.compatible='19.0.1'
*.control_files='+DATA/DUPDB/control01.ctl','+RECO/DUPDB/control02.ctl'
*.db_block_size=8192
*.db_name='DUPDB'
*.db_unique_name='DUPDB'
*.db_recovery_file_dest='+RECO'
*.db_recovery_file_dest_size=17179869184
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=DUPDBXDB)'
*.local_listener='LISTENER_DUPDB'
*.log_archive_dest_1='LOCATION=+RECO'
*.log_archive_format='%t_%s_%r.arc'
*.memory_max_target=0
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=278m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=872415232
*.undo_tablespace='UNDOTBS1'
*.db_file_name_convert='+DATA/ORCL','+DATA/DUPDB','+DATA/ORCL/DATAFILE', '+DATA/DUPDB/DATAFILE'
*.log_file_name_convert='+RECO/ORCL','+RECO/DUPDB' 
*.pdb_file_name_convert='+DATA/ORCL','+DATA/DUPDB','+DATA/ORCL/DATAFILE', '+DATA/DUPDB/DATAFILE' 

7 - Criar audit file dest no sistema operacional

mkdir -p /u01/app/oracle/admin/DUPDB/adump
  • A criação do diretório relacionado ao parâmetro (audit_file_dest), no sistema operacional é obrigatória antes da inicialização da instância.

8 - Criar arquivo de senhas (ORAPW): orapwd

cd $ORACLE_HOME/dbs
orapwd file=orapwDUPDB format=12
  • format=12 (Menor complexibilidade de senha)

9 - Iniciar instância em modo NOMOUNT usando o pfile criado na etapa anterior:

export ORACLE_SID=DUPDB
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
sqlplus / as sysdba
startup nomount pfile='/home/oracle/initDUPDB.ora';

10 - RMAN Duplicate Database from Active:

vi duplicate.rcv
connect target sys/oracle@ORCL
connect auxiliary sys/oracle@DUPDB

run{

allocate auxiliary channel c1 device type disk;
allocate auxiliary channel c2 device type disk;
allocate auxiliary channel c3 device type disk;
allocate auxiliary channel c4 device type disk;

allocate channel c5 device type disk;

duplicate target database to DUPDB from active database nofilenamecheck;

}
  • Para o DUPLICATE:
    • target / ⇒ Significa a origem a partir de onde será realizada a cópia.
    • auxiliary / ⇒ Significa o destino para onde a cópia será realizada.
  • Para o RESTORE:
    • target / ⇒ Significa o destino onde os dados serão restaurados.
nohup rman cmdfile duplicate.rcv &
  • A execução acima será realizada em background com nohup, utilizando o arquivo duplicate.rcv contendo todas as instruções necessárias ao duplicate via RMAN.

- Até a próxima.

Oracle Duplicate Database (From Active)

— Autor: Leonardo Lopes 02/03/2025 05H:13

oracledbduplicate.txt · Última modificação: 02/03/2025 05H:13 por admin