开工大吉|策马扬鞭,跃启新程!
2026-02-25
浙江省委宣传部副部长、省委网信办主任赵磊:守正创新 辩证施策 全力推动网络生态治理工作迈上新台阶
2026-02-10
美创产品全面入围中直机关2025年网络设备框架协议采购项目
2026-02-04
连续5年!美创再获中国网络安全产业联盟“先进会员单位”表彰
2026-01-21
每周安全速递³⁷¹ | 勒索软件攻击导致心理健康机构超11万人数据泄露
2026-01-06
存储域
数据库加密 诺亚防勒索访问域
数据库防水坝 数据库防火墙 数据库安全审计 动态脱敏流动域
静态脱敏 数据水印 API审计 API防控 医疗防统方运维服务
数据库运维服务 中间件运维服务 国产信创改造服务 驻场运维服务 供数服务安全咨询服务
数据出境安全治理服务 数据安全能力评估认证服务 数据安全风险评估服务 数据安全治理咨询服务 数据分类分级咨询服务 个人信息风险评估服务 数据安全检查服务在小编维护ogg这一段不长也不短的运维生涯中,总是接到客户反馈,“为什么我们的同步又中断了,日志显示ora-01403,找不到数据。可是我们确定目标端数据库没有人为删除修改数据,赶紧帮我们看看!”
了解或接触过ogg的人一般都知道,在部署OGG时有个前提条件是需要开启表级别附加日志。但大家却不一定清楚为什么已经开启了数据库级别的附加日志,却还需要为每个表添加附加日志。

下面小编用一个例子来告诉大家表级别附加日志的重要性!
当OGG进程遇到异常,查看进程状态时一般会看到下面这样的信息

上面这只是简单的进程信息,定位最终原因还是要查看具体日志。
如:查看ggserr.log日志

根据日志可以看到,ogg在执行sql语句时,发现需要去更新的记录不存在,具体sql语句和报错可以进一步查看discard文件(discard文件在ogg安装目录/dirrpt/路径下)

从discard文件中,我们可以清楚的看到这是一条简单的update语句,但是ID列的值为空,可是ID列又是这条update语句中的查询条件,所以无法定位到需要修改的记录,执行报错,无法找到数据。

为什么ID列会是空值呢?
凭借小编多年的ogg运维经验,怕是附加日志又没有添加。检查该表附加日志信息后,确认这张表没有添加附加日志,如下:
01
小知识:
Oracle日志(redo log)一般用于实例恢复和介质恢复,但是如果需要靠日志还原完整的DML操作信息(比如Goldengate),默认记录的日志量是不够的。对于insert、delete命令,在默认情况下产生的重做记录足以表明被修改的行的每个字段在被修改前后的值是什么。但是对于UPDATE的操作,redo默认只记录了rowid以及被修改的字段信息,但GoldenGate还原这个事务时,是在另一个库中进行还原,这时组成ROWID的四个部分(对象ID,数据文件ID,块号,行号)中,极可能是与原库不相同的,所以,不能根据ROWID来进行还原和处理。而要在SQL层面根据某个键值来定位记录,所以还需要将主键或者其他字段的信息附加到日志中去。要往日志中增加这些额外字段信息的操作,就是开启附加日志。
因为张表是ogg配置完成后新增的用户表,没有手动执行过add trandata添加附加日志。既然找到问题原因了,就可以按照正常操作来执行了。
知识拓展:
其实不仅仅是新增的用户表会存在这个问题,修改表结构,修改表名,修改主键这几种情况都会导致附加日志未添加或者失效,从而出现该报错。
那么难道每次业务上新增表,修改表都需要手动添加附加日志吗?这样工作量也太大了吧?太不智能了?
别急,OGG中有一个参数可以完美解决这个问题:ddloptions addtrandata
这个参数的官方文档解释如下:

1.允许oracle在创建表的时候自动添加附加日志
2.在修改表结构之后,自动更新附加日志
3.在修改表名之后,自动更新附加日志
4.在修改表主键之后,自动更新附加日志
小编在源端挖掘进程配置文件中添加ddloptions addtrandata参数后,再进行测试

![]()

这时可以看到新建表ddltest2的附加日志已经正确加上了,此时对表增删改数据都能正常同步。(对于没有主键的表,ogg会附加所有列的信息以此定位改动的数据具体是哪一条)
给该表添加主键后,附加日志为:

修改主键后执行update:


修改主键后执行delete:


均正常应用。
进一步验证,修改目标端记录:

生产端update操作:

目标端ogg同步提示找不到数据:

查看discard文件,可以看到,虽然和附加日志没有添加时报的错误相同,但是现在id主键字段的值是捕获到的,这次是真的没有该条记录,所以同步失败。
所以,在部署ogg时,添加表级别附加日志真的真的很重要,小伙伴们一定一定不要忘记!
参考文档:https://docs.oracle.com/goldengate/c1230/gg-winux/GWURF/ddloptions.htm#GWURF451