暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

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

原创 尚雷 2022-11-24
2398

一、问题描述

Oracle 12C及19C 完成DG后,如果想设置备库延迟应用主库日志,发现和11G之前的版本已有很大区别。
备库无法像11G或10G直接使用delay=xxx语句就能生效。

当在备库执行alter database recover managed standby database delay 4320 disconnect from session; 会报如下错误:
image.png

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

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 ,备库执行 alter database recover managed standby database disconnect from session;语句,备库alert日志仍然未出现Delay信息,无法达到延迟应用的目的。

当主库切换日志时,发现备库日志会报
image.png
会发现当主库切换日志时,备库仍然会是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备库设置延迟应用日志,可以采用如下方法:

主库:

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 多长时间的信息,备库达到延迟应用效果。

最后修改时间:2022-11-29 09:29:14
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论