背景
当遇到dg 同步延迟之奇怪的经典报错:ora-16191案例时,根据vdataguard_stats 的apply lag 值做同步时间监控,就会存在一定的报警延迟,为了解决这个问题,我想到了用主库与备库的scn 时间比较来确定同步是否延迟。
测试
- 主库报错: ora-01031
sql> select dest_name,status,error from v$archive_dest where dest_id=1 or dest_id=2;
dest_name status error
-------------------- -------------------- ------------------------------------------------------------
log_archive_dest_1 valid
log_archive_dest_2 error ora-01031: insufficient privileges
- 主库scn时间:
sql> select to_char(scn_to_timestamp(current_scn),'yyyy-mm-dd hh24:mi:ss') from v$database;
to_char(scn_to_time
-------------------
2022-11-08 11:38:11
- 备库scn时间及apply lag 状态值:
sql> select to_char(scn_to_timestamp(current_scn),'yyyy-mm-dd hh24:mi:ss') from v$database;
to_char(scn_to_time
-------------------
2022-11-08 11:38:18
sql> select value from v$dataguard_stats where name='apply lag';
value
--------------------
00 00:00:00
以上操作可以看出,虽然主备同步异常,但是scn 号还在同步更新,apply lag 值: 00 00:00:00
- 主库切归档
sql> alter system switch logfile;
system altered.
- 主库scn时间:
sql> select to_char(scn_to_timestamp(current_scn),'yyyy-mm-dd hh24:mi:ss') from v$database;
to_char(scn_to_time
-------------------
2022-11-08 11:45:52
- 查看备库scn时间
sql> select to_char(scn_to_timestamp(current_scn),'yyyy-mm-dd hh24:mi:ss') from v$database;
to_char(scn_to_time
-------------------
2022-11-08 11:45:21
sql> /
to_char(scn_to_time
-------------------
2022-11-08 11:45:21
sql> /
to_char(scn_to_time
-------------------
2022-11-08 11:45:21
- 多执行了几次,备库的scn时间不再更新
- 查看同步时间,apply lag时间依然: 00 00:00:00 ,这就失去了同步延迟报警的意义了
sql> select * from v$dataguard_stats where name='apply lag';
name value unit time_computed datum_time
---------- -------------------- ------------------------------ ------------------------------ ------------------------------
apply lag 00 00:00:00 day(2) to second(0) interval 11/08/2022 11:51:27 11/08/2022 11:45:23
结论
1、apply lag 的value值依然: 00 00:00:00
2、time_computed:11:51:27 datum_time:11:45:23 已经看到延迟了。
3、从这就可以看出value: 00 00:00:00 ,并不是很敏感。可以time_computed与datum_time提高敏感度监控。
4、考虑到主库备库网络的情况,我采用的是通过tns远程连接主库与备库的scn时间比对验证同步情况,顺便可以验证下网络的连通性。
文章推荐
《oracle_索引重建—优化索引碎片》
《oracle 自动收集统计信息机制》
《oracle 脚本实现简单的审计功能》
《oracle 监控表空间脚本 每月10号0点至06点不报警》
《dba_tab_modifications表的刷新策略测试》
《fy_recover_data.dbf》
《oracle rac 集群迁移文件操作.pdf》
《oracle date 字段索引使用测试.dbf》
《oracle 诊断案例 :因应用死循环导致的cpu过高》
《oracle 慢sql监控脚本》
《oracle 慢sql监控测试及监控脚本.pdf》
《记录一起索引rebuild与收集统计信息的事故》
《rac dg删除备库redo时报ora-01623》
《ash报告发现:os thread startup 等待事件分析》
《问答榜上引发的oracle并行的探究(一)》
《问答榜上引发的oracle并行的探究(二)》
– 安装系列
文章推荐
《oracle_19c_linux安装.pdf》
《oracle 19c-手工建库.pdf》
《19c单库升级19.11补丁.pdf
19c_rac补丁《19.11-p32841500》.pdf
《oracle_图形-单实例11.2.0.4升级19.3.pdf
《oracle_11.2.0.3升级11.2.0.4–单实例升级.pdf
《oracle_静默-单实例 11.2.0.4升级19.3.pdf
《centos_6.7系统一步一步 rac 11.2.0.4升级19.3.pdf
《整理后_rac_11.2.0.4升级19c.pdf
欢迎赞赏支持或留言指正