前一篇《Oracle 11g ADG 配置[RMAN DUPLICATE]》中,我们使用duplicate from active database的方式将主库在线恢备库。 在实际生产实施中,当源库(或主库)数据量很大例如10TB级别以上的时候,如果仍然使用duplicate from active database的方式将主库在线恢备库则已经不是最佳的选择了。 首先占用生产网络带宽,其次对源库的资源消耗及性能影响都很大,此时我们可以考虑使用其他方式将源库恢复到备库。 本篇只列出源库恢复到备库部分的其他可行的方法,其他步骤均和前一篇相同,不在赘述。 --- 1.创建物理备库【主库关闭拷贝到备库进行恢复】 --- 创建备库密码文件【可以直接将主库的密码文件拷贝到备库或者使用orapwd命令创建但要保证密码和主库相同】 $ scp /u01/app/oracle/product/11.2.0/db_1/dbs/orapwdbpod dbtest6:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwdbsdb --- 主库创建备库控制文件并传输到备库 SQL> shutdown immediate SQL> startup mount SQL> alter database create standby controlfile as '/home/oracle/dbsdb.ctl'; $ scp /home/oracle/dbsdb.ctl dbtest6:/u01/app/oracle/oradata/dbsdb/control01.ctl $ scp /home/oracle/dbsdb.ctl dbtest6:/u01/app/oracle/fast_recovery_area/dbsdb/control02.ctl --- 关闭主库 shutdown immediate --- 将主库数据文件和redo文件传输到备库【注意修改文件名和路径】 scp /u01/app/oracle/oradata/dbpod/redo01.log dbtest6:/u01/app/oracle/oradata/dbsdb/redo01.log scp /u01/app/oracle/oradata/dbpod/redo02.log dbtest6:/u01/app/oracle/oradata/dbsdb/redo02.log scp /u01/app/oracle/oradata/dbpod/redo03.log dbtest6:/u01/app/oracle/oradata/dbsdb/redo03.log scp /u01/app/oracle/fast_recovery_area/dbpod/redo01.rdo dbtest6:/u01/app/oracle/fast_recovery_area/dbsdb/redo01.rdo scp /u01/app/oracle/fast_recovery_area/dbpod/redo02.rdo dbtest6:/u01/app/oracle/fast_recovery_area/dbsdb/redo02.rdo scp /u01/app/oracle/fast_recovery_area/dbpod/redo03.rdo dbtest6:/u01/app/oracle/fast_recovery_area/dbsdb/redo03.rdo scp /u01/app/oracle/oradata/dbpod/sysaux01.dbf dbtest6:/u01/app/oracle/oradata/dbsdb/sysaux01.dbf scp /u01/app/oracle/oradata/dbpod/system01.dbf dbtest6:/u01/app/oracle/oradata/dbsdb/system01.dbf scp /u01/app/oracle/oradata/dbpod/temp01.dbf dbtest6:/u01/app/oracle/oradata/dbsdb/temp01.dbf scp /u01/app/oracle/oradata/dbpod/undotbs01.dbf dbtest6:/u01/app/oracle/oradata/dbsdb/undotbs01.dbf scp /u01/app/oracle/oradata/dbpod/users01.dbf dbtest6:/u01/app/oracle/oradata/dbsdb/users01.dbf --- 启动备库实时应用日志 SQL> startup SQL> alter database recover managed standby database using current logfile disconnect from session; --- 打开主库 SQL> startup --- 主库关闭拷贝到备库进行恢复明显的缺点是涉及到业务停机,停机时间和拷贝主库的数据文件大小及网络带宽有关,此方式一般只在实验测试时使用。 --- 2.创建物理备库【使用主库的RMAN备份恢复备库】 --- 密码文件创建同上 --- 主库执行RMAN备份 [oracle@dbtest5 backup]$ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Mon Jul 18 15:30:27 2016 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: DBPOD (DBID=3530613280) RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/fast_recovery_area/backup/DB_POD_CF%F'; new RMAN configuration parameters: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/fast_recovery_area/backup/DB_POD_CF%F'; new RMAN configuration parameters are successfully stored RMAN> backup database format '/u01/app/oracle/fast_recovery_area/backup/DB_POD_full_%U.bak' plus archivelog format '/u01/app/oracle/fast_recovery_area/backup/DB_POD_arc_%U.bak'; Starting backup at 21-JUL-16 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=4 RECID=10 STAMP=917527508 input archived log thread=1 sequence=5 RECID=12 STAMP=917527508 input archived log thread=1 sequence=6 RECID=13 STAMP=917527508 input archived log thread=1 sequence=7 RECID=14 STAMP=917527508 input archived log thread=1 sequence=8 RECID=11 STAMP=917527508 input archived log thread=1 sequence=9 RECID=6 STAMP=917527361 input archived log thread=1 sequence=10 RECID=7 STAMP=917527363 input archived log thread=1 sequence=11 RECID=8 STAMP=917527419 input archived log thread=1 sequence=12 RECID=9 STAMP=917527420 input archived log thread=1 sequence=13 RECID=15 STAMP=917537272 input archived log thread=1 sequence=14 RECID=16 STAMP=917537339 input archived log thread=1 sequence=15 RECID=17 STAMP=917537454 input archived log thread=1 sequence=16 RECID=18 STAMP=917537467 input archived log thread=1 sequence=17 RECID=19 STAMP=917792505 input archived log thread=1 sequence=18 RECID=20 STAMP=917792508 input archived log thread=1 sequence=19 RECID=21 STAMP=917792572 input archived log thread=1 sequence=20 RECID=22 STAMP=917792590 input archived log thread=1 sequence=21 RECID=23 STAMP=917792740 input archived log thread=1 sequence=22 RECID=24 STAMP=917792752 input archived log thread=1 sequence=23 RECID=25 STAMP=917792858 channel ORA_DISK_1: starting piece 1 at 21-JUL-16 channel ORA_DISK_1: finished piece 1 at 21-JUL-16 piece handle=/u01/app/oracle/fast_recovery_area/backup/DB_POD_arc_0jrb8q2q_1_1.bak tag=TAG20160721T142738 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 Finished backup at 21-JUL-16 Starting backup at 21-JUL-16 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/dbpod/system01.dbf input datafile file number=00002 name=/u01/app/oracle/oradata/dbpod/sysaux01.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/dbpod/undotbs01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/dbpod/users01.dbf channel ORA_DISK_1: starting piece 1 at 21-JUL-16 channel ORA_DISK_1: finished piece 1 at 21-JUL-16 piece handle=/u01/app/oracle/fast_recovery_area/backup/DB_POD_full_0krb8q2t_1_1.bak tag=TAG20160721T142741 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 21-JUL-16 channel ORA_DISK_1: finished piece 1 at 21-JUL-16 piece handle=/u01/app/oracle/fast_recovery_area/backup/DB_POD_full_0lrb8q34_1_1.bak tag=TAG20160721T142741 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 21-JUL-16 Starting backup at 21-JUL-16 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=24 RECID=26 STAMP=917792870 channel ORA_DISK_1: starting piece 1 at 21-JUL-16 channel ORA_DISK_1: finished piece 1 at 21-JUL-16 piece handle=/u01/app/oracle/fast_recovery_area/backup/DB_POD_arc_0mrb8q36_1_1.bak tag=TAG20160721T142750 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 21-JUL-16 --- 将主库备份传到备库服务器并保证备份和主库保持相同的存放位置【方式1使用SCP方式2使用NFS方式3使用共享存储或文件系统ACFS/DBFS】 $ scp /u01/app/oracle/fast_recovery_area/backup/DB_POD_arc_0jrb8q2q_1_1.bak dbtest6:/u01/app/oracle/fast_recovery_area/backup/ $ scp /u01/app/oracle/fast_recovery_area/backup/DB_POD_full_0krb8q2t_1_1.bak dbtest6:/u01/app/oracle/fast_recovery_area/backup/ $ scp /u01/app/oracle/fast_recovery_area/backup/DB_POD_full_0lrb8q34_1_1.bak dbtest6:/u01/app/oracle/fast_recovery_area/backup/ $ scp /u01/app/oracle/fast_recovery_area/backup/DB_POD_arc_0mrb8q36_1_1.bak dbtest6:/u01/app/oracle/fast_recovery_area/backup/ --- 创建备库控制文件并传输到备库 SQL> alter database create standby controlfile as '/home/oracle/dbsdb.ctl'; $ scp /home/oracle/dbsdb.ctl dbtest6:/u01/app/oracle/oradata/dbsdb/control01.ctl $ scp /home/oracle/dbsdb.ctl dbtest6:/u01/app/oracle/fast_recovery_area/dbsdb/control02.ctl --- 启动备库到mount SQL> startup mount --- 备库执行恢复【这里rman执行restore时不用加set newname for datafile子句因为备库参数文件中已经设置了file_name_convert参数为保证不会出错也可以加上】 $ rman target / RMAN> restore database; RMAN> recover database; --- 开启主库实时应用日志 SQL> alter database open; SQL> alter database recover managed standby database using current logfile disconnect from session; --- 3.创建物理备库【使用主库的RMAN备份duplicate恢复备库】 --- 密码文件创建同上 --- 主库执行RMAN备份同上 --- 主库创建备库控制文件并传输到备库同上【此步是否可以和下面1步合并直接将备库启动到nomount然后duplicate】 --- 启动备库到mount【此步是否可以和上面1步合并直接将备库启动到nomount然后duplicate】 SQL> startup mount --- 使用主库备份duplicate恢复到备库 RMAN> rman target sys/oracle@dbpod auxiliary sys/oracle@dbsdb nocatalog RMAN> duplicate target database for standby nofilenamecheck dorecover;---【此处加nofilenamecheck是为了告诉RMAN主备库数据文件目录结构一致dorecover指的是如果有增量备份则使用增量备份恢复】 --- 开启主库实时应用日志 SQL> alter database open; SQL> alter database recover managed standby database using current logfile disconnect from session; ### 以上从3个方面列出了恢复物理备库的方法,从生产实践上来看方式1只适用于实验测试,方式2和3更常用,不涉及生产业务停机操作。
Oracle 11g ADG 配置[RMAN DUPLICATE]-补充篇
发表回复