问题描述
备库报错,日志如下:
2019-08-08T09:46:32.915070+02:00
PR00 (PID:10646): Media Recovery Waiting for T-1.S-2306
PR00 (PID:10646): Fetching gap from T-1.S-2306 to T-1.S-2405
2019-08-08T09:46:32.925843+02:00
Errors in file /u01/app/oracle/diag/rdbms/xxxp2/XXXP2/trace/XXXP2_mz00_10650.trc:
ORA-01110: data file 1: '+ORADATA/XXXP2/DATAFILE/system.263.1009981381'
2019-08-08T09:48:27.919844+02:00
PR00 (PID:10646): FAL: Failed to request gap sequence
PR00 (PID:10646): GAP - thread 1 sequence 2306-2405
PR00 (PID:10646): DBID 123456789 branch 994167271
PR00 (PID:10646): FAL: All defined FAL servers have been attempted
PR00 (PID:10646): -------------------------------------------------------------------------
PR00 (PID:10646): Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization
PR00 (PID:10646): parameter is defined to a value that's sufficiently large
PR00 (PID:10646): enough to maintain adequate log switch information to resolve
PR00 (PID:10646): archived redo log gaps.
PR00 (PID:1064
专家解答
18c bug,当应用进程启用之后,数据文件的CHECKPOINT未更新。
BUG 29056767 – DATAFILES CHECKPOINT NOT UPDATED AT STANDBY DATABASE WHEN MRP IS ENABLED
这个问题只发生在18.1及以上版本,当备库MRP进程恢复在线日志时,数据文件的checkpoint scn and time没有更新,
select to_char(sysdate,'HH24:MI:SS'), file#, checkpoint_change#,
to_char(checkpoint_time,'HH24:MI:SS') from v$datafile_header;
这个bug的影响:
- level 1增量备份会跳过所有数据文件。
- 如果mrp突然中止,比如shutdown abort,那么下次启动恢复进程是就会去找redo,如果redo不存在,那么就会出现gap报错。
临时解决方案:
在备库设置_time_based_rcv_ckpt_target参数并重启恢复进程:
alter system set "_time_based_rcv_ckpt_target"=0;
--ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
--ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
--alter database recover managed standby database using current logfile disconnect from session;
另外建议主库也设置下参数,以防以后主备切换出现同样的错误。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。