Senhores(as), boa tarde,
Hoje, vamos aprender um pouco sobre como clonar um banco de dados via RMAN.
== Pré-requisitos ==
Para que o clone
database seja bem sucedido, certifique-se que todos os pré-requisitos sejam
contemplados:
Senhores(as), boa tarde,
Hoje, vamos aprender um pouco sobre como clonar um banco de dados via RMAN.
== Pré-requisitos ==
Para que o clone database seja bem sucedido, certifique-se que todos os pré-requisitos sejam contemplados:
1) O banco de dados
destino não deve estar montado(nomount);
2) Utilizando o RMAN
execute um backup completo do database, mais os archived redo logs:
a. rman> backup database plus archivelog;
3) Todos os arquivos
gerados por este backup devem ser copiados para mesma pasta no servidor de
destino;
4) Verifique o SCN do
backup gerado acima:
a. rman> list backup of database;
BS Key Type LV
Size Device Type Elapsed Time
Completion Time
------- ---- -- ---------- ----------- ------------
-------------------
7593 Full 431.14M
DISK 00:01:41 05/06/2009 12:21:00
BP Key: 7597
Status: AVAILABLE Compressed:
NO Tag: TAG20090605T121919
Piece Name:
/u01/app/oracle/product/11.1.0/db_1/dbs/3fkgqke7_1_1
List of
Datafiles in backup set 7593
File LV Type Ckp
SCN Ckp Time Name
---- -- ----
---------- ------------------- ----
1
Full 393996 05/06/2009
12:19:19 /u01/oradata/oltp/system01.dbf
2 Full 393996 05/06/2009 12:19:19
/u01/oradata/oltp/sysaux01.dbf
3 Full 393996 05/06/2009 12:19:19
/u01/oradata/oltp/undotbs01.dbf
4 Full 393996 05/06/2009 12:19:19
/u01/oradata/oltp/users01.dbf
5 Full 393996 05/06/2009 12:19:19
/u01/oradata/oltp/rman_d01.dbf
6 Full 393996 05/06/2009 12:19:19
/u01/oradata/oltp/dta01.dbf
b. Verifique a coluna 'CKP SCN', para
descobrir qual SCN deve ser utilizado na clausula "UNTIL SCN XXX". No
caso acima o SCN é 393996.
5) Caso a estrutura de
pastas de ambos os servidores sejam identicas, não é necessário setar novos
nomes para os datafiles (SET NEWNAME FOR DATAFILE X).
6) Modifique o scritp
abaixo, de acordo com o ambiente que o mesmo estiver sendo executado.
==== Execução =======
rman TARGET / CATALOG
RMAN/RMAN AUXILIARY sys/senha@clone
ou
rman TARGET / NOCATALOG
AUXILIARY SYS/SENHADOSYS@NOMEDOBANCO
RUN{
allocate auxiliary channel c1 DEVICE TYPE disk ;
SET NEWNAME FOR DATAFILE 1 to
'/u01/app/oracle/oradata/oltp/system01.dbf' ;
SET NEWNAME FOR DATAFILE 2 to
'/u01/app/oracle/oradata/oltp/undotbs01.dbf' ;
SET NEWNAME FOR DATAFILE 3
to'/u01/app/oracle/oradata/oltp/sysaux01.dbf' ;
SET NEWNAME FOR DATAFILE 4 to
'/u01/app/oracle/oradata/oltp/users01.dbf' ;
SET NEWNAME FOR DATAFILE 5 to
'/u01/app/oracle/oradata/oltp/dta01.dbf ' ;
SET NEWNAME FOR DATAFILE 6 to
'/u01/app/oracle/oradata/oltp/dados01.dbf' ;
SET NEWNAME FOR TEMPFILE 1 to
'/u01/app/oracle/oradata/smlmv/temp01.dbf';
DUPLICATE TARGET
DATABASE TO "CLONE" UNTIL SCN 389781 NOFILENAMECHECK
LOGFILE
GROUP 1 (
'/u01/app/oracle/oradata/oltp/redo01.log' ) SIZE 50 M REUSE,
GROUP 2 (
'/u01/app/oracle/oradata/oltp/redo02.log' ) SIZE 50 M REUSE,
GROUP 3 (
'/u01/app/oracle/oradata/oltp/redo03.log' ) SIZE 50 M REUSE;
}
=== Adicionando
tempfile==
alter tablespace temp add
tempfile '/u01/oradata/clone/temp02.dbf' size 32m autoextend on next 32m
maxsize 1024m;
alter tablespace temp drop
tempfile '/u01/oradata/clone/temp01.dbf';
rm -rfv
/u01/oradata/clone/temp01.dbf
alter tablespace temp add
tempfile '/u01/oradata/clone/temp01.dbf' size 32m autoextend on next 32m
maxsize 1024m;
alter tablespace temp drop
tempfile '/u01/oradata/clone/temp02.dbf';
select * from dba_temp_files;
== Setando novo nome
ao banco de dados( se necessário)
nid TARGET=SYS/<senha do usuário SYS> DBNAME=nome do banco de dados, neste caso, o comando ficaria dessa forma.
Qualquer dúvida, deixe seu comentário.
Abraço.
Nenhum comentário:
Postar um comentário