DataGuard主备数据不同步 ORA16191

2023年 10月 25日 39.3k 0

1.环境描述

主库
1.操作系统: redhat 6.9
2.数据库版本: 11.2.0.4(RAC两节点)
3.补丁情况: 最新的PSU补丁
备库
1.操作系统: redhat 6.9
2.数据库版本: 11.2.0.4(RAC两节点)
3.补丁情况: 最新的PSU补丁
4.实例状态: OPEN

2.故障现象
主备之间日志不传输、数据库不同步,且备库MRP进程正常,重启MRP进程也无济于事。提示如下:

Error 1017 received logging on to the standby

------------------------------------------------------------
Check that the primary and standby are using a password file
and remote_login_passwordfile is set to SHARED or EXCLUSIVE,
and that the SYS password is same in the password files.
returning error ORA-16191
------------------------------------------------------------
PING[ARC2]: Heartbeat failed to connect to standby 'dsjzxstb'.

3.解决办法
根据经验,该错误提示是Oracle主备之间的密码文件不对所导致,同步主备之间的数据文件后错误依旧存在,几经折腾,最后再在mos中发现了该问题的解决办法。

ORA-16191 ORA-01017 and ORA-16000 shipping the logs to Standby database (Doc ID 2129339.1)


从mos可以看出,该问题是由于主、备库使用了数据库层面的登陆触发器所导致,关闭该触发器或者直接降隐藏参数_system_trig_enabled设置为false即可解决该问题。
该问题是不定时出现,通过关闭数据库,启动到Mount阶段,补齐了归档日志后恢复正常,下次故障可能在2个礼拜或者一天后就出现。
若业务库有灾备(DataGuard)存在,建议不要使用这种类型的触发器,以免影响主备之间的数据同步。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论