我是靠谱客的博主 怕黑煎蛋,最近开发中收集的这篇文章主要介绍GoldenGate(3)_DDL和Sequence同步,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1DDL同步

1.1先决条件

分别在源、目标执行:
1)11g下,alter system set recyclebin=off DEFERRED;
2)ogg用户需要专属的表空间,且支持自扩展。

1.2执行脚本

分别在源、目标执行:用sys用户在sqlplus中,执行ogg根目录下的:
1)marker_setup.sql
2)ddl_setup.sql
3)role_setup.sql
4)ddl_enable.sql
5)rdbms/admin/dbmspool.sql(Oracle目录下)
6)ddl_pin.sql
3、配置extract、replicate
Extract下:

DDL INCLUDE ALL

Replicate下:

DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5

ps:DDLERROR DLL错误处理,否则DLL失败后,replicate将失败

1.3验证

序号DDL操作验证结果
1建表成功
2创建索引成功
3增加字段成功
4创建sp成功
5修改sp:如果正在执?
6错误处理:成功
7序列成功
8分区表成功
9drop table成功

1.4原理

1)看看脚本执行创建的对象

序号对象名对象类型
1GGS_MARKER_SEQSEQUENCE
2GGS_MARKER*TABLE
3DDLORA_GETERRORSTACKFUNCTION
4DDLORA_ERRORISUSERCANCELFUNCTION
5DDLORA_GETALLCOLSLOGGINGFUNCTION
6DDLVERSIONSPECIFICPACKAGE
7DDLORA_GETLOBSPROCEDURE
8FILTERDDLFUNCTION
9DDLORA_VERIFYDDLFUNCTION
10FILE_SEPARATORFUNCTION
11CREATE_TRACEPROCEDURE
12CLEAR_TRACEPROCEDURE
13TRACE_PUT_LINEPROCEDURE
14GGS_DDL_RULESTABLE
15GGS_DDL_RULES_LOGTABLE
16GGS_TEMP_COLSTABLE
17GGS_TEMP_UKTABLE
18GGS_STICKTABLE
19GGS_SETUPTABLE
20GGS_DDL_SEQSEQUENCE
21GGS_DDL_HIST_ALTTABLE
22GGS_DDL_HISTTABLE
23GGS_DDL_COLUMNSTABLE
24GGS_DDL_LOG_GROUPSTABLE
25GGS_DDL_PARTITIONSTABLE
26GGS_DDL_PRIMARY_KEYSTABLE
27GGS_DDL_OBJECTSTABLE
28DDLREPLICATIONPACKAGE
29DDLREPLICATIONPACKAGE BODY
30DDLAUXPACKAGE
31DDLAUXPACKAGE BODY

GGS_MARKER:在源端是捕获的DDL,一般包括2条记录:1是DDL语句,2是后台用的变量。在目标端是执行的DDL,如果DDL不能在目标端执行,则不插入到该表,但在trail文件可以看到(接收到但不执行)。

SEQNOFRAGMENTNOOPTIMETYPESUBTYPEMARKER_TEXT
8012017-10-18 11:17:41DDLDDLINFO“,C1=’drop table A_BAK ‘,”
8022017-10-18 11:17:41DDLDDLINFO,C5=’80’,,B2=’92771’,,G4=”,,B3=’HF’,,B4=’A_BAK’,,C12=”,,C13=”,,B5=’TABLE’,,B6=’DROP’,,B7=’80’,,B8=’GOLDENGATE.GGS_DDL_HIST’,,B9=’HF’,,C7=’11.2.0.1.0’,,C8=’11.2.0.0.0’,,C9=’VALID’,,C10=’1’,,C11=’orcl’,,G3=’NONUNIQUE’,,C14=’NO’,,C20=’NO’,,C17(‘1’)=’NLS_LANGUAGE’,,C18(‘1’)=’SIMPLIFIED CHINESE’,,C17(‘2’)=’NLS_TERRITORY’,,C18(‘2’)=’CHINA’,,C17(‘3’)=’NLS_CURRENCY’,,C18(‘3’)=’RMB’,,C17(‘4’)=’NLS_ISO_CURRENCY’,,C18(‘4’)=’CHINA’,,C17(‘5’)=’NLS_NUMERIC_CHARACTERS’,,C18(‘5’)=’.,’,,C17(‘6’)=’NLS_CALENDAR’,,C18(‘6’)=’GREGORIAN’,,C17(‘7’)=’NLS_DATE_FORMAT’,,C18(‘7’)=’DD-MON-RR’,,C17(‘8’)=’NLS_DATE_LANGUAGE’,,C18(‘8’)=’SIMPLIFIED CHINESE’,,C17(‘9’)=’NLS_SORT’,,C18(‘9’)=’BINARY’,,C17(‘10’)=’NLS_TIME_FORMAT’,,C18(‘10’)=’HH.MI.SSXFF AM’,,C17(‘11’)=’NLS_TIMESTAMP_FORMAT’,,C18(‘11’)=’DD-MON-RR HH.MI.SSXFF AM’,,C17(‘12’)=’NLS_TIME_TZ_FORMAT’,,C18(‘12’)=’HH.MI.SSXFF AM TZR’,,C17(‘13’)=’NLS_TIMESTAMP_TZ_FORMAT’,,C18(‘13’)=’DD-MON-RR HH.MI.SSXFF AM TZR’,,C17(‘14’)=’NLS_DUAL_CURRENCY’,,C18(‘14’)=’RMB’,,C17(‘15’)=’NLS_COMP’,,C18(‘15’)=’BINARY’,,C17(‘16’)=’NLS_LENGTH_SEMANTICS’,,C18(‘16’)=’BYTE’,,C17(‘17’)=’NLS_NCHAR_CONV_EXCP’,,C18(‘17’)=’FALSE’,,C19=’17’,

原理:在源端建触发其,将捕获的DDL存入GGS_MARKER表,再类似普通表把数据传递到目标trail,再逐条抽取执行,可执行且成功的插入目标GGS_MARKER。

2 Sequence同步

2.1部署

1)在可同步DDL的基础上
2)分别在源、目标执行ogg_rootsequence.sql

2.2配置extract、replicate

配置不复杂,对象里包含sequence即可。
Extract:
sequence hf.*;
投递:
sequence hf.*;
Replicate:
map hf.,target hf.; #包含了序列

ps:相对而言DDL实际中更实用一些,在升级数据模型时省了一些重复操作。
序列同步因为要在2个库间同步,中间涉及网络同步,势必对序列生成的效率有影响,不推荐(可以对2个库采用不同的起步数代替)。

最后

以上就是怕黑煎蛋为你收集整理的GoldenGate(3)_DDL和Sequence同步的全部内容,希望文章能够帮你解决GoldenGate(3)_DDL和Sequence同步所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部