oracle duplicate rman 06025,Oracle RMAN Duplicate database from Netbackup Tape by LAN-FREE

通过磁带库备份集Duplicate数据库,源库通过FC-Tape(LAN-FREE)备份到Netbackup带库,在目标主机通过备份恢复数据库,并保证数据恢复到源库最新的归档日志。

源数据库:

Q1DIMSVR02-R + QDIM10 + Oracle 11.2.0.2

.0 + Windows 2008 R2

目标数据库:

Q1DIMSRV02 + NBUTEST + Oracle 11.2.0.2.0 + Windows 2008 R2

######################

Oracle 异机恢复测试准备

######################

1,调试好新NC DB作为Media Server能正常连接访问磁带库。

2,到NBU Server上修改/usr/openv/netbackup/db/altnames/No.Restrictions

3,修改Master Server->General Server->Add(q1dimsvr02-r->q1dimsrv02),重启NBU服务。不修改的,这里失败,提示找不到新Media Server的路径。

4,关闭原备份磁带路径及NBU服务器的磁带路径,只保留新的NC DB磁带路径,以保证数据走的是新的数据库Media Server连的光纤通道。

5,恢复测试

run

{

allocate channel t1 type 'SBT_TAPE'

parms="ENV=(NB_ORA_SERV=q1dimsvr02-r,NB_ORA_CLIENT=q1dimsvr02-r)";

restore spfile to 'C:\restore\SPFILEQDIM10.ora' from 'full_s37_p1_t654273013';

release channel t1;

}

run

{

allocate channel t1 type 'SBT_TAPE'

parms="ENV=(NB_ORA_SERV=q1dimsvr02-r,NB_ORA_CLIENT=q1dimsvr02-r)";

restore controlfile to 'C:\restore\ControlfileQDIM10.ctl' from 'ctrl_s40_p1_t654273065';

release channel t1;

}

创建pfile->spfile

创建目录audit,数据文件

修改tnsnames.ora,添加NBUTEST,及P1DIMSVR02-R上的原QDIM10数据库字串。

这里没catalog,也无法直接读到备份集目录,所以需要访问备份只能通过target数据库,否则,报错无法连接目标库,其实就是无法找到备份集信息。

a,一定要使用auxiliary连接rman,这是duplicate复制的基本连接。

b,一定要dbid,否则不知道要恢复哪个数据库,会显示无法恢复控制文件。恢复控制文件会通过dbid去寻找。

c,一定要target或这catalog或者直接放备份集的目录。

d,一定要配置target数据库的TNS连接。

e,一定要写2条通道

f,一起要启动原DB监听,让target连进去。

duplicate时还可以设置

set until time "to_date('2012-03-19 20.19','YYYY-MM-DD hh24.mi')";

SET ARCHIVELOG DESTINATION TO '/u03/archivelogs';然后将新产生的日志提前放进去,让数据库去应用最新的日志。

###############

DUPLICATE步骤

###############

set ORACLE_SID=NBUTEST

set NB_ORA_CLIENT=q1dimsvr02-r(原数据库)

sqlplus / as sysdba

startup nomount;

rman auxiliary / target sys/Amaxgs123@OLDQDIM10

set dbid=1936688443 --(duplicate带有target或catalog可以不要设置dbid)

run{

#allocate channel c1 type 'SBT_TAPE'

#parms="ENV=(NB_ORA_SERV=q1dimsvr02-r,NB_ORA_CLIENT=q1dimsvr02-r)";

#allocate auxiliary channel t1 type 'SBT_TAPE'

#parms="ENV=(NB_ORA_SERV=q1dimsvr02-r,NB_ORA_CLIENT=q1dimsvr02-r)";

allocate auxiliary channel t2 type 'SBT_TAPE'

parms="ENV=(NB_ORA_SERV=q1dimsvr02-r,NB_ORA_CLIENT=q1dimsvr02-r)";

SET ARCHIVELOG DESTINATION TO 'C:\restore';

SET NEWNAME FOR DATABASE TO 'C:\app\Administrator\oradata\NBUTEST\%b';

SET NEWNAME FOR TEMPFILE 1 TO 'C:\app\Administrator\oradata\NBUTEST\%b';

DUPLICATE DATABASE QDIM10 DBID 1936688443 TO NBUTEST NOFILENAMECHECK BACKUP LOCATION 'sbt_tape'

LOGFILE GROUP 1 ('C:\app\Administrator\oradata\NBUTEST\redo01a.log','C:\app\Administrator\oradata\NBUTEST\redo01b.log') SIZE 50M,

GROUP 2 ('C:\app\Administrator\oradata\NBUTEST\redo02a.log','C:\app\Administrator\oradata\NBUTEST\redo02b.log') SIZE 50M,

GROUP 3 ('C:\app\Administrator\oradata\NBUTEST\redo03a.log','C:\app\Administrator\oradata\NBUTEST\redo03b.log') SIZE 50M;

#release channel c1;

#release channel t1;

release channel t2;

}

##############

############################

DUPLICATE时找不到未备份的归档日志问题解析

########################################

##

Oracleinstance shut down

RMAN-00571:===========================================================

RMAN-00569:=============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571:===========================================================

RMAN-03002:failure of Duplicate Db command at 05/09/2008 16:39:01

RMAN-05501:aborting duplication of target database

RMAN-03015:error occurred in stored script Memory Script

RMAN-06053:unable to perform media recovery because of missing log

RMAN-06025:no backup of archived log for thread 1 with sequence 4 and starting SCN of1883508 found to restore

问题原因:

恢复的SCN信息是通过target数据库库获取的,它默认会定位到源库最新归档日志的结束SCN,由于新的归档没有备份,最新的归档日志在旧的备份控制文件里没有记录,而duplicate也无法通过catalogstart with '';进行指定新拷贝过去的归档日志,所以无法找到日志。解决办法要么是指定可以恢复的SCN进行duplicate,但这样恢复的数据会少一点;或者在target数据库将最新的日志备份一下,再进行duplicate。

解决方法1--测试后发现不行

http://oracleinstance.blogspot.hk/2010/07/rman-03002-failure-of-duplicate-db.html

ADDNOFILENAMECHECK WITH DUPLICATE COMMAND

Example: DUPLICATE TARGET DATABASE TO "clone" NOFILENAMECHECK;

解决方法2--将4之后的归档日志备份一下到磁带库即可解决

run{

allocatechannel ch01 type 'sbt_tape';

#backuparchivelog all tag 'ARCH' format 'ARCH_%d_%T_%s';

backuparchivelog all not backed up 1 times tag 'ARCH' format 'ARCH_%d_%T_%s';

releasechannel ch01;}

######## 参考文档 ######## NBU查看备份信息,也可以看到文件的备份集信息 /usr/openv/netbackup/bin/admincmd/bpcatlist –server q1dimsvr-02 -client q1dimsrv02 参考文档 http://lefterhs.blogspot.com/2012/06/clone-database-using-rman-duplicate.html http://oraclenutsandbolts.net/knowledge-base/rman/29-how-to-duplicate-replicate-a-database-in-oracle http://learnwithme11g.wordpress.com/2011/07/04/rman-duplication-from-tape-backups/ http://dbakevin.blogspot.hk/2012/07/rman-senior-duplicate-database-from.html

你可能感兴趣的:(oracle,duplicate,rman,06025)