如何配置DG的备库延迟应用_DELAY参数实现在备库防范主库人为误操作逻辑错误

DELAY参数仅作用于备库Redo Apply阶段,即日志写入standby redo log或归档日志后、被MRP进程实际应用前的强制等待;它不控制网络传输,也不影响日志接收与落盘。DELAY参数到底作用在哪个环节DELAY 不是控制网络传输延迟,也不是让日志归档变慢,它只影响备库的 **Redo Apply 阶段**------即已接收并写入 standby redo log(或 archived log)后的重做日志,在被 SQL Apply 或 MRP 进程实际应用前,强制等待指定时间。这意味着:主库一提交,日志仍会以最快速度传到备库、落盘;但 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DELAY 30 后,MRP 进程会把"现在能应用的日志起点"卡在 SCN 时间戳倒推 30 分钟的位置。哪怕日志文件早已就位,也不会往前 apply。常见错误现象:ora-16055: fatal error in redo apply 一般和 delay 无关;但若误以为设了 delay 就等于"主库删表后还能秒级闪回",结果发现备库其实早就 apply 到出错位置------那大概率是忘了确认当前 applied_scn 和 delay 实际生效窗口是否对齐。怎么正确设置和验证DELAY值设置本身很简单,但必须在备库 MRP 进程停止状态下操作:使用场景:主库刚执行完高危 DDL(如 DROP TABLE),你希望立刻冻结备库应用,留出人工干预窗口。先停 MRP:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;再设延迟(单位分钟):ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DELAY 60;重启 MRP:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;验证是否生效:SELECT DELAY_MINS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID = 2;(注意:不是所有 DEST_ID 都显示该值,仅对启用 MRP 的物理备库目标有效)参数差异:DELAY 0 表示取消延迟,但不会自动 flush 已积压的日志------它只是放开 apply 起点限制,后续仍按顺序追平;而 DELAY 1440(一天)并不等价于"暂停同步",MRP 仍在运行,只是永远差一天,容易被监控误判为"同步延迟告警"。DELAY不能防什么,特别容易踩的坑DELAY 对以下情况完全无效:主库未提交的事务:备库根本收不到对应 redo,延迟无从谈起逻辑错误发生在延迟窗口之前:比如误操作在 10:00 发生,你 10:05 才设 DELAY 30,那 10:00--10:05 的日志可能早已 apply 完毕备库开启的是 SQL Apply(逻辑备库):DELAY 只对物理备库的 MRP 进程起作用,逻辑备库需用 DBMS_LOGSTDBY.SKIP 或暂停 APPLY_SERVER延迟期间主库发生故障切换:新主库(原备库)带着未应用的延迟日志升主,DELAY 设置丢失,且这部分日志不会再被跳过性能影响极小------MRP 进程只是多做一次时间比对,不增加 I/O 或 CPU 压力;但兼容性要注意:Oracle 11gR2 以后才支持动态修改 DELAY,11gR1 必须重启 MRP 才生效,且部分补丁版本存在 DELAY 值被忽略的 bug(查 MOS Doc ID 1595747.1)。 Shakespeare 一款人工智能文案软件,能够创建几乎任何类型的文案。

相关推荐
2301_814809862 小时前
如何快速查询SQL中的重复记录:GROUP BY与COUNT统计
jvm·数据库·python
m0_515098422 小时前
Redis怎样强行终止陷入死循环的Lua脚本
jvm·数据库·python
2301_817672262 小时前
SQL中RIGHT JOIN真的很少用吗_数据完整性检查与反向关联分析
jvm·数据库·python
2501_914245932 小时前
mysql如何进行表空间传输恢复_mysql transport tablespace实战
jvm·数据库·python
qq_330037992 小时前
MongoDB的聚集索引怎么用_Clustered Collections的插入性能优化
jvm·数据库·python
qq_334563552 小时前
html标签怎么表示用户输入_kbd标签键盘快捷键标注【介绍】.txt
jvm·数据库·python
小陈工2 小时前
数据库Operator开发实战:以PostgreSQL为例
开发语言·数据库·人工智能·python·安全·postgresql·开源
weixin_586061462 小时前
SQL报表星型模型优化_事实表索引设计
jvm·数据库·python
耿雨飞2 小时前
Python 后端开发技术博客专栏 | 第 07 篇 元类与类的创建过程 -- Python 最深层的魔法
开发语言·python