昨天,客户反映一套ogg的rep进程挂掉。
查看report报错是error mapping,检查参数文件配置、表结构、以及源端表的定义文件都没有问题,手动调整rba也不管用。
discard文件里显示compressed update 。
使用logdump 打开该文件定位到该rba下 ,显示io操作使update
但是before immage 只有第五列(被更新的列),而没有主键列,主键列是第一列。
于是去源端检查使用命令
info trandata xxxx
发现改表的trandata是disable的,于是重新加上了trandata ,重新抽取归档日志。
alter repxxx begin 2018-03-05 00:00:00 (一天前)
进程开启后,rep端仍然abend。
研究发现可能是源端抽取时未开启trandata导致未在当时把update的主键列抽取到trial文件里。这样在rep端由于无主键定位不到行,继而无法更新。
这种未添加add trandata 对于插入是没有影响的,update和delete是有影响。