源表字段修改以后引发GoldenGate同步失败

前天接到一客户电话,说他们的数据库同步报错了,错误信息如下:

ERROR   OGG-01163  Bad column length (3) specified for column col81 in table XXX.TT, maximum allowable length is 1.

经询问,得知是由于他们系统升级,有些表增加并修改了部分字段,其中的一个表同步失败,报上面的错误。

我一开始以为是两边(源端与目标端)数据库的表结构不一致,让他们drop掉目标端的表,重新从源端expdp然后impdp到目标端,但故障依旧。

表TT是一个宽表,在系统升级之前有70多个字段,有主键,并且同步一直是正常的,系统升级之后该表有80多个字段了,除了add了几个字段,

也有字段做了modify。在对replicat进程参数做了一些列修改均无改善,错误依旧。

最后我尝试重建此表:

1)使用表TT的DDL语句新建一个表T1,

2)insert into t1 select * from tt;

3)drop table tt;

4)rename t1 to tt;

5)GGSCI> add trandata xxx.tt

经过上面处理后,故障解决!

客户数据库环境:Oracle 11g RAC,Oracle Goldengate 11.1.1.1

posted on 2011-12-14 09:06  田园居  阅读(4390)  评论(0编辑  收藏  举报

导航