表的重新再同步(需时间窗口)

表的重新再同步(需时间窗口)

 

如果是某些表由于各种原因造成两边数据不一致,需要重新进行同步,可以参照以下步骤。

 

1)确认需要修改的表无数据变化

(如果有条件建议停止应用系统并锁定除去sys和goldengate以外的其它所有用户防止升级期间数据变化,

或者锁定所要再同步的表);

 

2)重启dpe进程(为了能够对统计信息清零);

 

3)停止目标端的rep进程;

 

4)在源端使用exp导出该表或者几张表数据。例如:

exp goldengate/XXXX file=nanhai.dmp tables=ctais2.SB_ZSXX grants=y

 

5)通过ftp传输到目标端;

 

6)在目标端,使用imp导入数据;

导入数据之前,先把目标端对应的表删除

 

nohup imp goldengate/XXXXX file=nanhai.dmp fromuser=ctais2 touser=ctais2 ignore=y &

 

7)如果这些表有外键,在目标端检查这些外键并禁止它们(记得维护dirsql下的禁止和启用外键的脚本SQL);

 

8)启动目标端的rep进程;

 

9)使用stats mydpe命令观察data pump的统计信息,观察里面是否包含了本次重新同步表的数据变化,

如确认该时段内这些表无数据变化,则重新初始化成功;否则中间可能产生重复数据,目标replicat会报错,

将错误处理机制设置为reperror default,discard,等待replicat跟上后对discard中的记录进行再次验证,

如果全部一致则重新初始化也算成功完成,当然也可以另择时段对这些表重新执行初始化。

原文地址:https://www.cnblogs.com/l10n/p/7529163.html