Oracle 12C 及19C DG备库如何设置延迟应用

来源:这里教程网 时间:2026-03-03 19:46:35 作者:

 **************************************************************************** 公众号:尚雷的驿站 CSDN :https://blog.csdn.net/shlei5580 墨天轮:https://www.modb.pro/u/2436 PGFans: https://www.pgfans.cn/user/home?userId=4159**************************************************************************** 编辑 一、问题描述Oracle%2012C及19C%20完成DG后,如果想设置备库延迟应用主库日志,发现和11G之前的版本已有很大区别。备库无法像11G或10G直接使用delay=xxx语句就能生效。当在备库执行

alter database recover managed standby database delay 4320 disconnect from session;

会报如下错误:

编辑

delay=xxx%20语句执行在主库端进行设置:

alter system set log_archive_dest_2='SERVICE="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.XX.XX)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xx.xxxx)(INSTANCE_NAME=xx)))" LGWR ASYNC DELAY=4320 REOPEN=60 MAX_FAILURE=10 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME="xx"' sid='*';

此时即使主库设置delay=xxx%20,备库执行%20alter%20database%20recover%20managed%20standby%20database%20disconnect%20from%20session;语句,备库alert日志仍然未出现Delay信息,无法达到延迟应用的目的。当主库切换日志时,发现备库日志会报

编辑

会发现当主库切换日志时,备库仍然会是real%20time%20apply的模式,无法达到延迟应用日志的目的。 二、原因分析该原因是从Oracle%2012开始,如果要不使用real%20time%20apply,需要加using%20archived%20log,using%20current%20logfile已经过期作废,不带using语句,在11g中,默认是不使用real%20time%20apply,而在12c中是默认使用real%20time%20apply。 三、解决办法所以要想在12C之后的DG备库设置延迟应用日志,可以采用如下方法:主库:

alter system set log_archive_dest_2='SERVICE="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.XX.XX)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xx.xxxx)(INSTANCE_NAME=xx)))" LGWR ASYNC DELAY=4320 REOPEN=60 MAX_FAILURE=10 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME="xx"' sid='*';

备库:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING ARCHIVED LOGFILE DISCONNECT;

此时,在主库切换日志,备库alert日志就会出现 Delay 多长时间的信息,备库达到延迟应用效果。

相关推荐