公众号:尚雷的驿站
CSDN :https://blog.csdn.net/shlei5580
墨天轮:https://www.modb.pro/u/2436
PGFans:
https://www.pgfans.cn/user/home?userId=4159
****************************************************************************
一、问题描述
Oracle 12C及19C 完成DG后,如果想设置备库延迟应用主库日志,发现和11G之前的版本已有很大区别。
备库无法像11G或10G直接使用delay=xxx语句就能生效。
当在备库执行
会报如下错误:
delay=xxx 语句执行在主库端进行设置:
此时即使主库设置delay=xxx ,备库执行 alter database recover managed standby database disconnect from session;语句,备库alert日志仍然未出现Delay信息,无法达到延迟应用的目的。
当主库切换日志时,发现备库日志会报
会发现当主库切换日志时,备库仍然会是real time apply的模式,无法达到延迟应用日志的目的。
二、原因分析
该原因是从Oracle 12开始,如果要不使用real time apply,需要加using archived log,using current logfile已经过期作废,不带using语句,在11g中,默认是不使用real time apply,而在12c中是默认使用real time apply。
三、解决办法
所以要想在12C之后的DG备库设置延迟应用日志,可以采用如下方法:
主库:
备库:
此时,在主库切换日志,备库alert日志就会出现 Delay 多长时间的信息,备库达到延迟应用效果。