暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle DataGuard利用rman增量恢复处理gap

DBA技术栈 2021-04-21
705


alert 日志报错信息:

Media Recovery Waiting for thread 1 sequence 7057
Fetching gap sequence in thread 1, gap sequence 7057-7080
FAL[client]: Error fetching gap sequence, no FAL server specified
Mon Mar 24 11:39:40 CST 2017
FAL[client]: Failed to request gap sequence 
 GAP - thread 1 sequence 7057-7080
 DBID 768411208 branch 784810891
FAL[client]: All defined FAL servers have been attempted.

出现原因:

DataGuard主备之间可能由于网络等原因,造成备库和主库之间的归档日志不一致,这样就产生了gap。

处理:

1)主库暂定备库的日志传输
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = 'DEFER';
2)备库取消日志应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
3)在备库查询最小的SCN号
SQL> SELECT MIN(FHSCN) FROM X$KCVFH;
   MIN(FHSCN)
 ----------------
20606344
4)例如备库查询的最小SCN号,在主库进行SCN的增量备份
rman target / 
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
sql 'alter system archive log current';
backup as compressed backupset INCREMENTAL FROM SCN 20606344 DATABASE FORMAT '/backup/backup/incr_%d_%T_%U';
crosscheck archivelog all;
BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT  '/u01/backup/cntrl_%s_%p_%s.ctl';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
5)复制增量备份文件到备库
6)备库注册备份文件
RMAN> CATALOG START WITH '/tmp/Standby_Inc';
7)利用RMAN recover恢复备库,此时会默认使用之前注册的备份文件
RMAN> RECOVER DATABASE NOREDO;
8)更新standby 控制文件
RMAN> SHUTDOWN;
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/Standby_CTRL.bck';
RMAN> SHUTDOWN;
RMAN> STARTUP MOUNT;
9)查询恢复后的数据文件
SQL>SELECT FILE#, NAME FROM V$DATAFILE WHERE CREATION_CHANGE# > 20606344;
10)重启日志传输
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = 'enable' scope=both;
11)重启日志应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;






推荐阅读







文章转载自DBA技术栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论