表的重新再同步(无需时间窗口)
发布日期:2021-08-31 22:55:22 浏览次数:2 分类:技术文章

本文共 968 字,大约阅读时间需要 3 分钟。

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

 

如果是某些表由于各种原因造成两边数据不一致,需要重新进行同步,但实际业务始终24小时可用,不能提供时间窗口,

则可以参照以下步骤。(因较为复杂,使用需谨慎!)

 

1)确认ext/dpe/rep进程均无较大延迟,否则等待追平再执行操作;

 

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

注意:步骤3-5为将源端数据通过exp/imp导入到目标端,客户也可以选择其它初始化方式,比如expdp/impdp。

 

3)在源端获得当前的scn号。例如:

select to_char(current_scn) from v$database;

以下以获得的scn号为1176681为例

 

4)在源端使用exp导出所需重新初始化的表或者几张表数据,并且指定到刚才记下的scn号。例如:

exp <username>/<password> tables=ctais2.SB_ZSXX grants=n statistics=none triggers=n compress=n FLASHBACK_SCN=1176681

 

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

 

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

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

 

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

 

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

 

8)编辑目标端对应的rep参数文件,在其map里面加入一个过滤条件,只对这些重新初始化的表应用指定scn号之后的记录

(一定要注意不要修改本次初始化之外的其它表,会造成数据丢失!):

map source.mytab, target target.mytab, filter ( @GETENV ("TRANSACTION", "CSN") >     1176681 ) ;

 

9)确认参数无误后,启动目标端的rep进程;

 

10)使用info repxx或者lag repxx直到该进程追上,停止该进程去掉filter即可进入正常复制。

 

转载于:https://www.cnblogs.com/liang545621/p/7529161.html

转载地址:https://blog.csdn.net/weixin_34092455/article/details/94219614 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:正则表达式入门
下一篇:PHP WeBaCoo后门学习笔记

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月27日 22时22分42秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章