1.问题描述
复制进程abend。。。。。。。。。又abend了!坑太多。
2.问题分析
2.1.通过logdump查看失败的事务
是对以前成功同步表的update。
怀疑是表结构修改过,继续查看表结构
2.2.表结构变更过,增加了主键
但和以往不同,主从都增加了主键,之前的都是主库结构改了,从库没改。
联想到下午同事邮件说已增加了主键的邮件,检查了下主键的创建时间,确实是今天下午。
是否是主键引起的呢?如果是主键,又是怎么影响的呢?
2.3.查看trail信息
info trandata
问题就在这:表原来没有主键,trandata是所有字段信息,但没有新增的主键字段;
重建trandata:
delete trandata CUST.T_BOM
add trandata CUST.T_BOM
引申而来的:
推荐使用schema trandata
好处是:trandata可以跟踪到表的DDL,不用修改。
ADD SCHEMATRANDATAdoes the following:
● Enables Oracle supplemental logging for new tables created with a CREATE TABLE.
● Updates supplemental logging for tables affected by an ALTER TABLEto add or drop
columns.
● Updates supplemental logging for tables that are renamed.
● Updates supplemental logging for tables for which unique or primary keys are added
or dropped.
3.总结
- 这次的启发是跟踪到了trandata。之前的错误一般是主从表结构不一样。
- 还是回到OGG的流程去分析问题:trandata->trail->replicat,投递一般没什么问题。