Pular para o conteúdo principal

Clonando database usando RMAN

Database de Origem:

oracle@denilson:~> rman target /
Recovery Manager: Release 10.2.0.4.0 - Production on Thu Oct 1 15:07:49 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=3270432501)
RMAN> backup database plus archivelog;

-- mais informações sobre RMAN:
http://dicasoracledba.blogspot.com/2009/05/backup-rapido-e-simples-com-rman.html

* Copiar todos os backup pieces
* Copiar controlfile backup piece
* Copiar arquivo de parametros (init.ora)

Database Destino:

oracle@denilson_bkp:~> rman target /
Recovery Manager: Release 10.2.0.4.0 - Production on Thu Sep 19 15:07:49 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database (not started)
RMAN> startup nomount;
Oracle instance started
Total System Global Area 205520896 bytes
Fixed Size 1218508 bytes
Variable Size 75499572 bytes
Database Buffers 121634816 bytes
Redo Buffers 7168000 bytes



Restaurar controlfile do backup piece:


RMAN> restore controlfile from '/u01/rman/backup/c-3932056136-20070213-02';
Starting restore at 13-SEP-09
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete,
elapsed time: 00:00:02
output filename=/u01/oracle/product/oradata/ora10g/orcl/control01.ctl
Finished restore at 13-SEP-09


RMAN> alter database mount ;

-- Catalogar todos os backup pieces copiados do banco de origem:

Exemplo:
RMAN> catalog backuppiece '/u01/rman/backup/o1_mf_annnn_TAG20070213T002925_2x21m6ty_.bkp';
Starting implicit crosscheck backup at 13-FEB-07allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=155 devtype=DISK
Crosschecked 3 objects
Finished implicit crosscheck backup at 13-FEB-07
Starting implicit crosscheck copy at 13-FEB-07using channel ORA_DISK_1
Finished implicit crosscheck copy at 13-FEB-07searching for all files in the recovery areacataloging files..

-- Verificar após catalogar:

RMAN > list backup of archivelog all;


Caso a estrutura de diretórios no servidor de destino estiver diferente você pode renomear os arquivos:

-- Renomeando redo logs:
SQL> alter database rename file '/u01/oracle/product/oradata/ora10g/orcl/redo01.log' to '/u01/oracle/product/oradata/orcl/redo01.log';

-- Renomeando datafiles:
RMAN> run { set until sequence set newname for datafile 1 to '/u01/oracle/product/oradata/orcl/system01.dbf';
set newname for datafile 2 to '/u01/oracle/product/oradata/orcl/undotbs01.dbf'; set newname for datafile 3 to '/u01/oracle/product/oradata/orcl/sysaux01.dbf'; }


RMAN> restore database;

-- Caso foi necessário renomear os arquivos utilize o switch datafile:
RMAN> switch datafile all;

RMAN> recover database;

RMAN> alter database open resetlogs;



Comentários

Postagens mais visitadas deste blog

Index SKIP SCAN???

Index Skip Scan nada mais é que o "split" logico de um indice composto, ou seja, se sua clausula WHERE não tiver todos os campos do indice composto, ele é dividido em menores sub-indices Exemplo: -------- SQL> create table teste(a number,b number); Table created. SQL> begin 2 for i in 1..1000 3 loop 4 insert into teste values(i, 56); 5 end loop; 6 end; 7 / PL/SQL procedure successfully completed. SQL> create index idx_teste on teste(a,b); Index created. SQL> analyze table teste compute statistics; Table analyzed. SQL> explain plan for select /*+ index_ss(teste idx_teste) */ * from teste where b=56; Explained. SQL> start ?\rdbms\admin\utlxpls.sql -------------------------------------------------------------------------------- | Operation | Name | Rows | Bytes| Cost | Pstart| Pstop | -------------------------------------------------------------------------------- | SELECT STATEMENT | | 1

Webcenter Content - Jython to Checkin Content with Attachments (CHECKIN_NEW_WITH_RENDITIONS)

In the last few days, i had to load a content that, by its requirements, needs to attach files to the content. My first alternative would be Batch Loading, however for the bacth loder file it was not possible because it does not actually support the rendition service. With the next option, i tried to use the IdcCommand, but still had many problems, such as errors below: sample hda file: [oracle @ hostname bin] $ cat idctst.txt @Properties LocalData IdcService = EDIT_RENDITIONS dID = 37020 renditionKeys = addRendition0 addRendition0.name = test543 addRendition0.action = edit addRendition0.file = test.txt addRendition0.file: path = / u01 / oracle / domains / content_domain / ucm / cs / vault / ~ temp / test.txt @end << EOD >> Executing: [oracle @ hostname bin] $ ./IdcCommand -f idctst.txt -u sysadmin -l log.log -c server Error: Java HotSpot (TM) 64-Bit Server VM warning: Using the ParNew young collector with the Serial old collector is deprecated and w

Configurar Tamanho de UNDO e tempo de RETENÇÃO (UNDO_RETENTION)

-- Tamanho Undo Atual SELECT SUM(a.bytes) "UNDO_SIZE" FROM v$datafile a, v$tablespace b, dba_tablespaces c WHERE c.contents = 'UNDO' AND c.status = 'ONLINE' AND b.name = c.tablespace_name AND a.ts# = b.ts#; -- Blocos de UNDO por Seg. SELECT MAX(undoblks/((end_time-begin_time)*3600*24)) "UNDO_BLOCK_PER_SEC" FROM v$undostat; --Tamanho do Bloco SELECT TO_NUMBER(value) "DB_BLOCK_SIZE [KByte]" FROM v$parameter WHERE name = 'db_block_size'; -- Select calcula UNDO RETENTION SELECT d.undo_size/(1024*1024) "ACTUAL UNDO SIZE [MByte]", SUBSTR(e.value,1,25) "UNDO RETENTION [Sec]", ROUND((d.undo_size / (to_number(f.value) * g.undo_block_per_sec))) "OPTIMAL UNDO RETENTION [Sec]" FROM ( SELECT SUM(a.bytes) undo_size FROM v$datafile a, v$tablespace b, dba_tablespaces c WHERE c.contents = 'UNDO'