【原创】goldengate 目的端rep复制进程 遇到ora-00001 异常终止abend的血案

环境介绍:
goldengate 目的端rep复制进程 遇到ora-00001 异常终止abend的血案



源头oracle,1个extract进程,该的进程参数文件配置的是user.*

源头oracle,2个进datapump进程(这是往2个不同目的端上的dp进程),第一个dp进程的参数文件配user.*
第二个进程(以下简称dpww进程)的参数文件配置的是
user.a;
user.b;
user.c;
user.d;

,也就是说,dpww进程是完成了部分表传输到目的地的trail文件中。



目的端repww进程abended,看discard文件,如下所示:


Current time: 2012-01-07 09:10:58
Discarded record from action ABEND on error 1

OCI Error ORA-00001: unique constraint (CIMS.PK_GT_JYZ_ZS) violated (status = 1), SQL
Aborting transaction on /u02/ggs/dirdat/ww beginning at seqno 0 rba 111386
error at seqno 0 rba 114763
Problem replicating CIMS.GT_JYZ_ZS to CIMS.GT_JYZ_ZS
Mapping problem with insert record (target format)...


违反唯一约束,第一反应肯定是目的端此表中存在相同的记录,去目的端查询此表,where条件是报错中的列和列值,查询结果是空记录。


邪门了。。


于是提交sr,一级sr,老外接手处理,下班了,澳大利亚的华人接手处理,折腾一圈,没搞定。

于是n天过去了。

于是我又重新部署goldengate,部署完毕后,业务启动,repww进程还是报错,报错提示跟以上错误一样。

logdump工具上阵:

logdump> open ./dirdat/ww000000
logdump> ghdr on
logdump> detail on
logdump> detail data

logdump> pos 111386
logdump> n

发现如下信息:

2012/01/07 08:59:29.337.624 Insert Len 360 RBA 114310
Name: CIMS.GT_JYZ_ZS
After Image: Partition 4 G m
0000 0013 0000 000f 3337 3032 3834 3630 3036 3635 | ........370284600665
3934 3000 0100 0a00 0000 06b3 c2c8 f0b2 d300 0200 | 940.................
1500 0031 3937 362d 3038 2d31 373a 3038 3a34 333a | ...1976-08-17:08:43:
3039 0003 0003 0000 3100 0400 0400 0030 3100 0500 | 09......1......01...
0f00 0000 0b31 3339 3634 3231 3039 3837 0006 0004 | .....13964210987....
ffff 0000 0007 0003 0000 3100 0800 04ff ff00 0000 | ..........1.........
0900 0400 0031 2000 0a00 1600 0000 1233 3730 3230 | .....1 ........37020




2012/01/07 08:59:29.337.624 Insert Len 360 RBA 114763
Name: CIMS.GT_JYZ_ZS
After Image: Partition 4 G m
0000 0013 0000 000f 3337 3032 3834 3630 3036 3635 | ........370284600665
3934 3000 0100 0a00 0000 06b3 c2c8 f0b2 d300 0200 | 940.................
1500 0031 3937 362d 3038 2d31 373a 3038 3a34 333a | ...1976-08-17:08:43:
3039 0003 0003 0000 3100 0400 0400 0030 3100 0500 | 09......1......01...
0f00 0000 0b31 3339 3634 3231 3039 3837 0006 0004 | .....13964210987....
ffff 0000 0007 0003 0000 3100 0800 04ff ff00 0000 | ..........1.........
0900 0400 0031 2000 0a00 1600 0000 1233 3730 3230 | .....1 ........37020

注意,以上两段只是rba不同,一个是RBA 114310 另一个是 RBA 114763,都是往同一个表中的insert into操作。

看到这里,我感觉到纳闷,怎么可能在目的端trail文件写2遍相同的操作呢?

莫非是dpww进程的参数文件把GT_JYZ_ZS这个表多配置了一次?

于是打开源端的dpww进程的参数文件,搜了一下,果然,CIMS.GT_JYZ_ZS出现了2次。

那么还有没有可能其他的表名出现了重复(一共138张表)?
于是,装上pb,在我自己的数据库中建了个table,将这138张表用excel另存为"制表符分割的txt"文件,
用pb的row-import菜单,将这138个表名导入了表中,
使用sql查询:
select tablename,count(*) from xxxx group by tablename having count(*)>1
结果只反馈这一行:GT_JYZ_ZS

于是确认,只有这一行有问题。删除掉重复的一行GT_JYZ_ZS,重启dpww进程即可。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/161195/viewspace-1057064/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/161195/viewspace-1057064/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值