暂无图片
双向OGG中B节点无法同步update
我来答
分享
刘望天
2021-11-10
双向OGG中B节点无法同步update

各位同仁,大家好

        在下根据业务需求搭建了一个双向同步的OGG,OGG版本是19,数据库版本都是19.3,操作系统是Oracle Linux7.6,经过测试,A节点update可以同步到B节点,B节点update无法同步到A节点,insert和delete因生产原因暂时不方便操作测试,下面是A节点复制进程的discard截图

我来答
添加附件
收藏
分享
问题补充
14条回答
默认
最新
Thomas

把唯一索引删了再建主键,然后重新 add trandata试试吧

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
Thomas

两边LP960.AGENCY_PROCESS的表结构是否完全一样呢

暂无图片 评论
暂无图片 有用 0
打赏 0
刘望天

你好,我将两端表结构截图贴出来,从A节点到B节点是可以同步update的

暂无图片 评论
暂无图片 有用 0
打赏 0
Thomas

表结构是一样的。有无可能,B端更新的一条记录,在A端找不到对应的记录。这两个表都没有主键?

暂无图片 评论
暂无图片 有用 0
打赏 0
刘望天

没看到主键,有唯一索引,唯一索引可以代替吗

暂无图片 评论
暂无图片 有用 0
打赏 0
cqiwen
关键是看两边的同步进程是否都正常
暂无图片 评论
暂无图片 有用 0
打赏 0
刘望天

你好,状态都是running的

暂无图片 评论
暂无图片 有用 0
打赏 0
Thomas

两边都info trandata LP960.AGENCY_PROCESS, 把结果贴出来。另外把A端的REPLICAT参数内容贴出来(edit param replicat name)。

暂无图片 评论
暂无图片 有用 0
打赏 0
刘望天

暂无图片 评论
暂无图片 有用 0
打赏 0
Thomas

第二张INFO TRANDATA 截图里,如下内容: ORACLE GOLDENGATE MARKED FOLLOWING COLUMNS AS KEY COLUMNS: ID, NAME ,DESCRIPTION......明显和第一张截图里不一样啊,第一张里显示KEY COLUMN只有ID。

针对第二张截图对应的表,建立unique index, 然后OGG里运行

deleter trandata LP960.AGENCY_PROCESS

add   trandata LP960.AGENCY_PROCESS

info  trandata LP960.AGENCY_PROCESS

看是否和第一张一致了,也仅已id为key column。如一致,再试验B端Update, 看A端是否同步。 

暂无图片 评论
暂无图片 有用 0
打赏 0
刘望天

两边创建表和索引的SQL是一模一样的,索引的状态也是一样的。我现在将B端的唯一索引重新建了以下,然后两边都执行了delete trandata和add   trandata,但indo trandata还是有差别

暂无图片 评论
暂无图片 有用 0
打赏 0
Thomas

B端表里有无ID为null的记录,如有先处理下,保证ID not null. 或者 alter table add constraint pkxxx primary key on (id);看能否执行成功,要确保能执行成功了,再

deleter trandata LP960.AGENCY_PROCESS

add   trandata LP960.AGENCY_PROCESS

info  trandata LP960.AGENCY_PROCESS

试试


暂无图片 评论
暂无图片 有用 0
打赏 0
刘望天

确认ID列没有NULL,建主键的话是否需要将唯一索引删除,还是直接创建主键。

暂无图片 评论
暂无图片 有用 0
打赏 0
刘望天

感谢,听从您的建议,去除唯一索引,建立主键,再添加一遍附加日志已经可以正常双向update,下面是现在的信息。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏