Oracle的DG环境中由于配置了登陆触发器导致日志不能同步报错ORA-16191的实验

0    122    1

Tags:

👉 本文共约2131个字,系统预计阅读时间或需9分钟。

前言

之前碰到DG环境中,redo不能同步的大部分原因是密码文件的问题,解决办法也很简单,就是生成一份密码文件,然后拷贝到其它节点即可。

最近碰到一种情况是由于配置了登陆触发器导致redo不能同步。

本文就这种情况,我们来做实验验证。

快速部署DG环境

使用docker快速部署:

检查同步情况

主库:

备库:

可看到,是同步的。

主库建表测试:

备库查询:

确认是实时同步的。

主库创建登陆触发器

这里只是简单给个示例,具体业务场景可能更复杂,例如记录客户端的详细信息等内容:

创建完成后,在备库也可以查询到该触发器,此时,主备依然是实时同步的。

建表删表测试同步正常!!!

触发故障

主备库都做重启动作。

重启后,发现告警日志开始报错,主库:

备库:

主库查询:

备库查询:

日志已经不同步了。

此时,做实时验证,发现不能同步了(主库建表,备库查询即可)。

排查故障

生成trace来检查。

主库检查

在主库都做如下操作:

主库告警日志:

查看trace文件内容:

主要错误是 .. Detailed OCI error val is 604 and errmsg is 'ORA-00604: error occurred at recursive SQL level 1
ORA-16000: database open for read-only access
ORA-06512: at line 2

备库检查

在备库都做如下操作:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复