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 <insert *+="" restrict_all_ref_cons="" *="" into="" "cims"."gt_jyz_zs"="" ("nbxh","jyzm","csrq","xb","mz","lxdh","whcd","jkzk","jstc","zjmc","zjhm","yhzmc","yhzhm","sjhm","email","fax","rylx","hjdz","xzz","fzjg","g="" style="word-wrap: break-word; color: rgb(102, 102, 102); font-family: 宋体, Arial; line-height: 26px;">
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进程即可。


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值