发现问题
测试环境搭建了一套RAC+DG的系统。数据库版本11203。
RAC双节点,DG单节点。
有段时间把DG节点关机,只开主节点RAC。(毕竟并没有线上业务,且大多用来做实验或数据统计用。)
一段时间之后,打开DG节点,发现无法open read only。
检查发现DG缺少部分归档日志,且该部分归档日志已经被删掉,没有备份。
此时有两种解决办法:
1.重新搭建DG环境。
2.不重新搭建DG环境,利用其他办法解决。
本文详细介绍了利用RMAN增量备份解决DG gap的问题。
操作步骤
1.确认问题存在,分析原因。
查看DG日志应用情况,确定日志应用进度。
thread 1: sequence# 214
thread 2: sequence# 112
SQL> select NAME,THREAD#,SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#,ARCHIVED,APPLIED,DELETED from v$archived_log;
NAME THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# ARC APPLIED DEL
-------------------------------------------------- ---------- ---------- ------------- ------------ --- --------- ---
/u01/app/oracle/archARC_1_0000000211_885898750.arc 1 211 5889618 5889672 YES YES NO
/u01/app/oracle/archARC_2_0000000111_885898750.arc 2 111 5889621 5889675 YES YES NO
/u01/app/oracle/archARC_1_0000000212_885898750.arc 1 212 5889672 5936547 YES YES NO
/u01/app/oracle/archARC_1_0000000213_885898750.arc 1 213 5936547 5942602 YES YES NO
/u01/app/oracle/archARC_1_0000000214_885898750.arc 1 214 5942602 5953350 YES YES NO
/u01/app/oracle/archARC_2_0000000112_885898750.arc 2 112 5889675 5954190 YES NO NO
/u01/app/oracle/archARC_1_0000000274_885898750.arc 1 274 9065115 9144171 YES NO NO
/u01/app/oracle/archARC_1_0000000275_885898750.arc 1 275 9144171 9226083 YES NO NO
/u01/app/oracle/archARC_1_0000000276_885898750.arc 1 276 9226083 9252006 YES NO NO
/u01/app/oracle/archARC_2_0000000154_885898750.arc 2 154 9155657 9228653 YES NO NO
..................
..................
/u01/app/oracle/archARC_2_0000000249_885898750.arc 2 249 14437971 14442095 YES NO NO
/u01/app/oracle/archARC_2_0000000252_885898750.arc 2 252 14459559 14461551 YES NO NO
/u01/app/oracle/archARC_1_0000000373_885898750.arc 1 373 14459562 14461565 YES NO NO
155 rows selected.
SQL>
SQL>
从以上可以看出DG节点日志应用SCN位于5953350和5954190之间。(根据thread 1 和thread 2日志SCN)
查看DG节点归档日志gap视图
SQL>
SQL> select * from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
1 215 273
2 113 152
SQL>
查询数据库当前SCN
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
5953349
确认主库是否有添加数据文件
DG节点关机期间并未添加数据文件
相关SQL如下:
SQL> select FILE#,name from v$datafile where CREATION_CHANGE#> =5953349;
no rows selected
主库增量备份
增量备份的SCN要比当前数据库SCN小。(否则拷贝到DG节点做恢复的时候不起作用,后面有详细输出。)
[oracle@racnode1 ~]$ rman target /
RMAN> backup incremental from SCN 5953344 DATABASE FORMAT '/home/oracle/ljk_%U' TAG 'zengliangbk';
Starting backup at 22-FEB-16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=28 instance=RACDB_1 device type=DISK
backup will be obsolete on date 29-FEB-16
archived logs will not be kept or backed up
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATADG/racdb/datafile/data01.269.886180153
input datafile file number=00002 name=+DATADG/racdb/datafile/sysaux.261.885898927
input datafile file number=00001 name=+DATADG/racdb/datafile/system.260.885898771
input datafile file number=00003 name