zoukankan      html  css  js  c++  java
  • Oracle OGG 单表重新初始化同步的两种思路

    Oracle OGG 单表重新初始化同步的两种思路

    一站式学习AI基础知识+核心技术+实操教程+免费工具集
    9大课程,边学习边实操,带你通关计算机视觉应用,还有免费工具集和开放平台供所有开发者使用!

    Oracle OGG 单表重新初始化同步的两种思路

                                                     by ACDdante

    一、应用需求
    由于多种原因导致OGG源端和目标端两端数据不一致,且总体数据量差异较大,如果整个schema重新进行初始化,工作量过于巨大,且业务要求也不允许。在这种情况下,可考虑对数据出现不一致的单张表或者多张表进行初始化。

    二、基本思路
    001、使用replicat进程完成单表重新初始化

    1.  
      ①在目标端将出现数据不一致的表从replicat进程中排除
    2.  
      ②基于源端SCN对单张表或者多张表单独建立replicat进程进行初始化
    3.  
      ③等到新的replicat进行无延迟时停掉目标端对应的datapump进程
    4.  
      ④停止并删除新建的replicat进程,在原replicat进程中添加这些差异 表,指定SCN启动rep进程,完成数据同步

    002、使用expdp/impdp数据导入导出完成单表重新初始化

    1.  
      ①在目标端将出现数据不一致的表从replicat进程中排除,并重启rep进程
    2.  
      ②在源端,基于最新SCN将该表单独导出expdp,并拷贝至目标端
    3.  
      ③在目标端,删除该差异表,drop table schema.tablexxx;使用impdp重新导入该表数据。
    4.  
      ④目标端,replicat进程将该表配置同步,指定SCN重新启动replicat进程,观察数据同步状态

    !==============================================!
    1、在目标端上,将MS_XXX 单表排除
    edit param reptxyy
    MAPEXCLUDE HIS.MS_XXX
    重启REPXXXX应用进程

    2、在 源端上查询最新的SCN

    col current_scn for 999999999
    select current_scn from v$database;
    scn
    16563972104

    3、导数据到目标端:
    源端导出MS_XXX表数据
    expdp system/password directory=IMPDP dumpfile=xxxxhis20180122.dmp logfile=xxxxhis20180122.log tables=HIS.MS_XXX flashback_scn=16564108704
    scp XXXXhis20180122.dmp 目标端IP:/u01/app/expdp

    4、目标端导入数据
    impdp system/password directory=expdp dumpfile=xxxxhis20180122.dmp logfile=xxxxhis20180122.log PARALLEL=4 tables=HIS.MS_XXX REMAP_SCHEMA=HIS:XXXX_HIS REMAP_TABLESPACE=HIS:XXXX_HIS transform=OID:N ignore=y

    5、目标端指定SCN启动replicat
    edit param repxxxx
    删除排除MS_XXX表配置
    通过指定SCN启动REPXXXX进程
    start replicat REPXXXX, aftercsn 16563972104

    6、查看数据同步状态
    或者在目标端replicat进程中配置单表同步SCN起始位:
    map HIS.MS_XXX, target XXXX_HIS.MS_XXX, filter(@GETENV("transaction","csn") >16563972104);
    !===============================================!

  • 相关阅读:
    nginx + keepalived 教程
    mysql 之 获取指定月份天数和指定月份上月天数
    hive 之将sql执行结果输出到文件中
    sql 之 处理一行全为0的记录
    Shell 基础知识
    kettle 调度时出现时区问题,导致数据调出加了8小时
    sql 之按指定分割符取分割符前/后字符串
    Spring Security(二)
    Spring Security(一)
    集成Swagger文档
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/15402130.html
Copyright © 2011-2022 走看看