备库长时间开启snapshot standby做测试,超过了归档日志保留的时间,由于归档删除无法自动恢复。
备库的告警日志有下面错误信息(GAP sequence提示信息): PR00 (PID:145361): FAL: Failed to request gap sequence PR00 (PID:145361): GAP - thread 1 sequence 66694-66790 PR00 (PID:145361): DBID 1790039322 branch 1173452819 PR00 (PID:145361): FAL: All defined FAL servers have been attempted PR00 (PID:145361): ------------------------------------------------------------------------- PR00 (PID:145361): Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization PR00 (PID:145361): parameter is defined to a value that's sufficiently large PR00 (PID:145361): enough to maintain adequate log switch information to resolve PR00 (PID:145361): archived redo log gaps.
处理办法:18c之前只能增量恢复或重建。本次是19.9版本,直接用RECOVER STANDBY DATABASE FROM SERVICE 主库tns服务名;即可实现自动增量恢复。
如果是rac环境,只启动一个实例到mount状态,然后继续
rman target nocatalog /
RMAN> startup mount;
RMAN> RECOVER STANDBY DATABASE FROM SERVICE tns_iihdb;
最后报错:
ORA-19909: datafile 1 belongs to an orphan incarnation
ORA-0110: data file 1:

list incarnation of database;
reset database to incarnation 2;--此处需选择主库中的STATUS为CURRENT的DB key
主库检查:

备库检查:

然后再恢复同步
srvctl stop database -d newdgiih -o immediate
srvctl start database -d newdgiih
sqlplus / as sysdba
show pdbs;
ALTER PLUGGABLE DATABASE all open instances=all;
alter database recover managed standby database using current logfile disconnect from session;
select FLASHBACK_ON,database_role,protection_mode,protection_level,open_mode from v$database;
col SOURCE_DB_UNIQUE_NAME for a10
col VALUE for a20
select * from v$dataguard_stats;


相关参考: