OGG replicat出现ORA-01403 错误NO data found

OGG replicat出现ORA-01403 错误NO data found
今天OGG出现表数据不同步,入库端接收update和delete语句时出现ORA-01403 错误NO data found

一直同步,排除掉表也无法解决!


解决方法一:
在参数中添加 HANDLECOLLISIONS   当target端缺失delete 、update数据时,target端 自动处理。

停止replicat进程,先将要同步的表mapexclude,然后将在目标端上重新初始化此表,保证源和目标上此表的数据是一致,然后再在replicat进程中将表重新map,启动进程。


HANDLECOLLISIONS参数说明:
HANDLECOLLISIONS是我们使用goldengate过程中常有的一个REPLICAT参数,该参数依赖于主键或唯一索引处理冲突数据,常用于初始化阶段。对于无主键或唯一索引的表无法处理冲突,且可能导致重复记录。注意打开此参数则所有数据错误不管reperror如何配置均不再写discard文件,即所有数据冲突信息被默认规则处理,没有任何日志(则会忽略error mapping数据错误,而且不会报告到discard文件),因此日常复制不建议使用该参数;可予以考虑的特殊场景为只需新增数据,无需复制历史数据。

使用HANDLECOLLISIONS的几个场景:

1、target丢失delete记录(missing delete),忽略该问题并不记录到discardfile
2、target丢失update记录(missing update)
            更新的键值是主键=》 update转换成INSERT ,默认情况下插入记录不完整
            更新的键值是非主键=》 忽略该问题并不记录到discardfile
3、重复插入已存在的主键值到target表中,这将被replicat转换为UPDATE现有主键值的行的其他非主键列情景1 target丢失delete记录(missing delete) :



解决方法二:

以上方法是针对数据量较小,相对静态的表。而一般在生产环境中遇到大表很少能重新初始化的,此时可以按照以下方法操作:
1.找到该REPLICAT进程的dsc文件

在view report rxx中可以找,也可以view params rxx 找到discardfile;
然后打开该文件。
2.将所有no data found的数据在目标库造出,目的是让ogg进程能找到数据。
3.start 进程
4.如果进程abenden,则重复以上操作。

该方法比较保险,但如果出现记录数较多时的话则需花费较长时间。

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

转载于:http://blog.itpub.net/29863023/viewspace-1465632/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值