ogg_单项同步_ddl

oracle DDL 同步: -> 不支持及有限支持 。 oracle 数据库保留的schemas, goldengate是不支持复制的。
                               -> goldengate  不支持超过2M 长度的DDL语句。
                               ->goldengate  只支持单项的DDL 复制,不支持双向DDL复制。
                               ->goldengate 只支持源端和目标段结构一致的DDL复制和DDL有关的procedure和query必须保持正确的结构有限执行。
                               ->不支持的schema, ogg默认不复制,不需要更多设置。
                               ->受限支持的DDL, 可以通过ddl_ddl2file.sql 获取被忽略的oracle DDL操作,会把获取的操作放在user_dump_dest 目录下的一个文件里。
                               -> 在投递中必须使用参数  assumetargetdefs
                                

oracle DDL复制原理:  -> ogg ddl的复制是基于数据库全局trigger的复制,在source库建立一个oracle全局trigger捕获DDL操作到中间表,Extract读取中间表DDL语句并与DML语句根据csn排序,pump投递到target端,target端的replicat 再重现改DDL语句。
                                      -> DDL 复制 基于 trigger,   而DML 复制基于 日志。两则相互独立,DML不影响DDL,DDL不影响DML捕获。



步骤: 
  
 一: 安装goldengate  DDL 对象:
        
         关闭所有 进程组: GGSCI > stop extract *

二:  指定源端数据库的模式,DDL复制的用户使用goldengate 的用户来承担,要求DBA 权限。
     GGSCI > edit params ./GLOBALS 
           ggschema ogg     --GGSCHEMA  <ddl_schema>  --goldengate 用户

                                         
三: 运行*.sql 脚本,在source端: sys用户下
   
         SQL >@marker_setup.sql     --为goldengate DDL做准备
         SQL >@ddl_setup.sql            --为DDL 准备
         SQL >@role_setup.sql           --创建goldengate DDL复制角色
         SQL> @ddl_enable.sql          --开启DDL的功能
         SQL> @marker_status.sql      --验证DDL 状态


四:  修改源端:Extract 配置文件,pump进程不需要:  在extract 各进程中table 之前加入下面配置
        DDL INCLUDE ALL
       DDLOPTIONS ADDTRANDATA, REPORT 

五: 修改Replicat 配置文件: 在replicat 各个进程中map前加入下面配置
        DDL  INCLUDE MAPPED
        DDLOPTIONS REPORT 

六: 启动进程组:  source : mgr  extract  pump       target  : mgr  replicat 


七: 验证


eg:(source 端)

GGSCI (dominic.mysql1) 21> view params ./GLOBALS

ggschema ogg



GGSCI (dominic.mysql1) 22> VIEW PARAMS EXTRA_1

extract extra_1
dynamicresolution
userid ogg,password ogg
rmthost dominic.mysql2,mgrport 7809,compress
exttrail /dba/app/oggs/dirdat/et
ddl include all
ddloptions addtrandata, report
table scott.*;


GGSCI (dominic.mysql1) 23> VIEW PARAMS PUMP_1

extract pump_1
dynamicresolution
passthru
rmthost dominic.mysql2,mgrport 7809,compress
rmttrail /dba/app/oggs/dirdat/pt
table scott.*;
--table ogg.test;



target端:

GGSCI (dominic.mysql2) 3> view params ./GLOBALS

checkpointtable ogg.checkpoint


GGSCI (dominic.mysql2) 4> VIEW PARAMS MGR

PORT 7809
dynamicportlist 7810-7850
autostart er *
autorestart extract *,waitminutes 2, retries 5
lagreporthours 1
laginfominutes 3
lagcriticalminutes 5
purgeoldextracts /dba/app/oggs/rt*,usecheckpoints,minkeepdays 3



GGSCI (dominic.mysql2) 5> VIEW PARAMS REP1

replicat rep1
userid ogg,password ogg
assumetargetdefs
reperror default,discard
discardfile /dba/app/oggs/dirrpt/rep1.dsc,append,megabytes 50
dynamicresolution
ddl include mapped
ddloptions report
map scott.*,target scott.*;


注意:  只要你的source端 的目录名称,存放数据目录不变,只修改参数值,直接重启进程组 ok ,不需要重新添加命令。

可以先做DML 操作,当数据同步以后,在做DDL 操作。  

DDL异常与错误处理:
        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值