错误描述

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

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

解决方案

1.1 解决思路

1) 先将不能同步的表忽略,tableexclude yx_data.df_myfx_dw_flhzb;

启动replicat进程,启动成功,将数据同步完成,然后停掉replicat。

2) 把不能应用的表进行重新同步使用expdp/impdp。

3) 在参数文件中,将参数 --tableexclude yx_data.df_myfx_dw_flhzb,注释掉

加入新参数,里面加入scn 号,map BSPRUN.LN908, target BSPRUN.LN908, filter ( @GETENV ('TRANSACTION', 'CSN') > 12273790558167 );

启动replicat进程。

4) 完成

具体操作

3.1 在参数文件添加未应用的表:

edit param reyxyx

tableexclude yx_data.df_myfx_dw_flhzb

start reyxyx

等数据同步完成,停止replicat进程

stop reyxyx

3.2 通过数据泵把未应用的表进程同步

在源端数据库先锁表,取出scn号

sqlplus

lock table AICBIZ.ABNORMALQIYE in share mode;

select dbms_flashback.get_system_change_number scn from dual;

rollback;

SQL>

SCN

131693772606

3.3 使用数据泵在源端把表数据导出,指定scn

expdp \'/ as sysdba\' directory=dpdump dumpfile=xxxx`date '+%Y%m%d%H%M'_%U.dmp logfile=xxxx_date '+%Y%m%d_%H%M'`.log FLASHBACK_SCN=131693772606 TABLES=xxxx.xxxx

3.4 将导出数据传输到目标端

推数据

scp xxx.dump oracle@10.10.10.10:/home/oracle/

或拉数据

scp oracle@10.10.10.11:/home/oracle/xxx.dump /home/oracle/

3.5 使用数据泵在目标端恢复表

impdp \'/ as sysdba\' directory=dpdump dumpfile=xxxx_20180707_162901.dmp logfile=xxxxdate '+%Y%m%d_%H%M'.log TABLE_EXISTS_ACTION=truncate

impdp参数TABLE_EXISTS_ACTION解释

skip:默认操作

replace:先drop表,然后创建表,最后插入数据

append:在原来数据的基础上增加数据

truncate:先truncate,然后再插入数据

3.6 数据导入完成后,修改ogg参数,启动replicat进程

./ggsci

edit param xxx

map xxxx.xxxx, target xxxx.xxx, filter ( @GETENV ('TRANSACTION', 'CSN') > 131693772606 );

start xxx

3.7 至此,数据同步完成,replicat进程running状态。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐