当前位置 博文首页 > 程序员石磊:goldengate中添加同步表的操作

    程序员石磊:goldengate中添加同步表的操作

    作者:[db:作者] 时间:2021-07-04 15:55

    1.非异构同步:

    (1)先停止源端ogg的抽取和传输进程

     stop exta01
      (注意: 若有长事务需确认归档是否存在
         info exta01 showch
         查看recovery checkpoint 的记录,确保该条归档和其后的归档都在,
         send extract exta01,forcestop)
    
      stop dpea01
    

    (2)dblogin userid ggs,password ggs 登陆数据库

      info trandata table_name 如果为disabled 则用 add trandata table_name
      (注意: 如果是同步已有的表并且表结构发生变化的则用下面的步骤
         delete trandata table_name
         add trandata table_name)
    

    (3)在抽取和投递进程中添加该表:

      edit params extra01
       table table_name
    

    (4)启动 源端进程

      start *
    

    (5)目标端停止复制进程

      stop repa01
    

    (6)数据初始化:

      a、查询源端的导出目录
        sqlplus / as sysdba
       select * from dba_directories;
      b、查询scn号
       col get_system_change_number for 99999999999999
       select dbms_flashback.get_system_change_number from dual;
      c、导出导入
      源端:expdp \'/ as sysdba\' directory=directory_name dumpfile=###%U.dump logfile=###.log parallel=1 tables=user.tanle_name1,user.table_name2 content=data_only flashback_scn=###########
     传到目标端:scp ###%U.dump oracle@10.218.11.1:/goldengate 然后输入oracle密码
     目标端导入:impdp \'/ as sysdba\' directory=directory_name dumpfile=###%U.dump logfile=###.log parallel=1 tables=user.tanle_name1,user.table_name2 content=data_only table_exists_action=truncate remap_schema=user:user1 remap_tablespace=%:usertbs
    

    注意:导入过程中时刻注意目标端的表空间使用情况,以及表空间名的remap是否正确。
    (7)导入完成后在目标端复制进程中添加
    map user.table_name , target user1.table_name , filter (@GETENV (“TRANSACTION”, “CSN”) > ########### ) ;
    启动复制进程 start repa01

    2.异构同步:

    异构复制的数据同步比非异构的多加一步
    在最后启动复制进程之前,源端生成表定义文件:
    进入源端ogg主目录
    cd dirprm
    vi defgen.prm (或者在ogg主目录下./ggsci 然后在交互界面edit params defgen )
    添加参数
    defsfile ./dirdef/defgen.def,purge
    userid ggs,password ggs
    table user.table_name;
    保存后退出
    在ogg主目录下执行./defgen paramfile ./dirprm/defgen.prm

    传到目标端将目标端dirdef下的def文件覆盖。

    如果是整个进程的表都做了初始化,可用下面的语句启动复制进程
    start repa01,aftercsn ############

    cs
    下一篇:没有了