Duplicate Database via Backup

Neste artigo, vou explicar como realizar o duplicate database, utilizando um backup. Para realizar um duplicate com base em um backup, devemos logicamente primeiro criar um backup da base de origem:

[oracle@oelmultiversion:db11g]$ rman target /

Recovery Manager: Release 11.2.0.4.0 – Production on Fri Apr 1 07:13:24 2016
Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.
connected to target database: DB11G (DBID=1360816534)

RMAN> backup database current controlfile plus archivelog;

Depois do backup realizado, devemos enviar ele ao destino.

[oracle@oelmultiversion:db11g]$ scp *TAG* 192.168.25.196:/tmp/
reverse mapping checking getaddrinfo for host-003 [192.168.25.196] failed – POSSIBLE BREAK-IN ATTEMPT!
oracle@192.168.25.196’s password:
annnf0_TAG20160401T071403_0.279.908003645          100%  140MB 140.0MB/s   00:00
annnf0_TAG20160401T071451_0.281.908003691 100% 9216     9.0KB/s   00:00
ncnnf0_TAG20160401T071411_0.270.908003689          100% 9856KB   9.6MB/s   00:00
ncsnf0_TAG20160401T071411_0.271.908003687          100% 9888KB   9.7MB/s   00:00
nnndf0_TAG20160401T071411_0.280.908003651          100% 1356MB 169.6MB/s   00:08

[oracle@oelmultiversion:db11g]$

Sem a necessidade de conectar na base target, o Oracle pega os metadados necessários para a criação do banco, a partir dos backups gerados e enviados para o ambiente de destino.

Devemos criar um pfile de origem, envia-lo para o ambiente destino e modifica-lo para os valores da base de destino.

Caso necessário alterar os diretórios origem e destino, configurar os parâmetros db_file_name_convert e log_file_name_convert, conforme abaixo:

Exemplo:

SQL> create pfile=’/tmp/initdb11g.ora’ from spfile;

File created.

SQL>

[oracle@prod:db11g]$scp /tmp/inittst11g.ora oelstandby :/orabin/app/oracle/product/11.2.0/db/dbs/

[oracle@mvteste:tst11g]$ cat /orabin/app/oracle/product/11.2.0/db/dbs/inittst11g.ora

tst11g.__db_cache_size=658505728
tst11g.__java_pool_size=4194304
tst11g.__large_pool_size=4194304
tst11g.__oracle_base=’/orabin/app/oracle’#ORACLE_BASE set from environment
tst11g.__pga_aggregate_target=314572800
tst11g.__sga_target=947912704
tst11g.__shared_io_pool_size=0
tst11g.__shared_pool_size=264241152
tst11g.__streams_pool_size=4194304
*.audit_file_dest=’/orabin/app/oracle/admin/tst11g/adump’
*.audit_trail=’db’
*.compatible=’11.2.0.0.0′
*.control_files=’/orateste/tst11g/control01.ctl’,’/orabin/app/oracle/fast_recovery_area/tst11g/control02.ctl’
*.db_block_size=8192
*.db_domain=”
*.db_name=’tst11g’
*.db_recovery_file_dest=’/orabin/app/oracle/fast_recovery_area’
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest=’/orabin/app/oracle’
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tst11gXDB)’
*.log_archive_dest_1=’LOCATION=/tmp/’
*.log_archive_format=’tst11g_%t_%s_%r.arc’
*.open_cursors=300
*.pga_aggregate_target=314572800
*.processes=150
*.remote_login_passwordfile=’EXCLUSIVE’
*.sga_target=944766976
*.undo_tablespace=’UNDOTBS1′
*.db_file_name_convert=’/oradata/db11g/’,’/orateste/tst11g/’
*.log_file_name_convert=’/oradata/db11g/’,’/orateste/tst11g/’

Feito isto, devemos subir o banco destino em modo nomount utilizando o pfile modificado.

[oracle@mvteste:tst11g]$ sqlplus

SQL*Plus: Release 11.2.0.4.0 Production on Fri Apr 1 05:42:59 2016
Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Enter user-name: /as sysdba
Connected to an idle instance.

SQL> startup nomount
ORACLE instance started.
Total System Global Area 1593835520 bytes
Fixed Size                  2924880 bytes
Variable Size             956305072 bytes
Database Buffers          620756992 bytes
Redo Buffers               13848576 bytes

Agora podemos realizar o duplicate.

[oracle@mvteste:tst11g]$ rman AUXILIARY /

Recovery Manager: Release 11.2.0.4.0 – Production on Fri Apr 1 05:43:11 2016
Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.
connected to auxiliary database: TST11G (not mounted)

RMAN> duplicate database to tst11g BACKUP LOCATION ‘/tmp’ NOFILENAMECHECK;

 


Deixe um comentário