为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:ky10sp3
【CPU】: AMD
【问题描述】*:Data Watch的KEEP_RLOG_PKG疑问。看官网关于KEEP_RLOG_PKG的介绍,如果是实时归档(Realtime)+高性能模式,那么备库 KEEP_RLOG_PKG 日志重演的时机包括:
1.备库收到新的 RLOG_PKG
备库收到新的 RLOG_PKG 时,会将当前保存的 KEEP_RLOG_PKG 日志重演,并将新收到的 RLOG_PKG 再次放入 KEEP_RLOG_PKG 中。
2.收到主库的重演命令
主库会定时将 FILE_LSN 等信息发送到备库,当主库 FILE_LSN 等于备库 SLSN 时,表明主库已经将 KEEP_RLOG_PKG 对应的 Redo 日志写入联机日志文件中,此时备库会启动 KEEP_RLOG_PKG 的日志重演。
而实时归档模式是,主库RedoLog写入联机日志前,将RedoLog发送到备库。
这重演时机不严谨呀,在主库大并发执行修改的时候,产生的大量日志传送到备库,会造成瞬时间,备库重演的数据大于主库写入的联机日志文件的日志。而这在个瞬时期间主库故障,重启后主备数据不一致。
这个问题,哪位给解答一下,如何解决?

你说的这个场景就是KEEP_RLOG_PKG引入适应的场景:
引入 KEEP_RLOG_PKG 后,备库 B 收到主库A发送的 RLOG_PKG,并不会马上启动日志重演,主库A重启后,守护进程A检测到备库B存在KEEP_RLOG_PKG,通知备库 B丢弃 KEEP_RLOG_PKG 后,直接 Open 主库 A,就可以继续提供数据库服务。并且,这些操作是由守护进程自动完成,不需要用户干预。