77范文网 - 专业文章范例文档资料分享平台

GoldenGate安装部署(4)

来源:网络收集 时间:2019-03-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

4.1.3 ddl同步

GoldenGate的DDL同步只支持两边一致的数据库,限制条件较多(如不能进行字段映射、转换等),具体可以参考官方文档。DDL的抓取不是通过日志抓取来捕获的,而是通过触发器来实现,所以对源数据库的性能影响要比单纯的数据抓取要大很多,可谓屏弃了GoldenGate的优势。尽量不要使用GoldenGate的DDL复制功能,在大多数业务系统中,实际上不会有频繁的数据库结构变动,完全可以通过手工的方式进行维护。确实有大量DDL操作的环境,如果可以,还是推荐物理DG之类的替换方案;确实要使用GoldenGate的DDL复制,那么请详细参考官方文档的限制和说明。

--以上主要为个人意见,有不同看法的请无视

开启DDL复制的基本配置步骤为: (1)关闭ORACLE的回收站功能。

(2)选择一个数据库schema存放支持DDL的GoldenGate对象,运行相应创建脚本。 (3)编辑globals参数文件。 (4)修改extl和repl的配置文件

具体操作步骤:

(1)关闭数据库回收站:

SQL>alter system set recyclebin=off scope=both;

(2)编辑globals参数文件: GGSCI>edit param ./globals 添加以下内容后保存:

GGSCHEMA ddw --标明支持DDL的GG对象存放在哪个schema下

(3)执行创建脚本:

首先需要命令行进入GG安装目录下,然后再运行sqlplus执行脚本,如果不进入目录下脚本执行会报错(应该是由于GG脚本中子脚本嵌套使用相对路径的问题所造成)。 SQL>@marker_setup.sql --提示输入目标schema

SQL>@ddl_setup.sql --提示输入目标schema,输入initialsetup最后输入yes SQL>@role_setup.sql

SQL>grant GGS_GGSUSER_ROLE to ddw; --不进行该步赋权后面起进程会报错 SQL>@ddl_enable.sql --使触发器生效

(4)修改提取进程和复制进程的配置文件,分别加入ddl include all属性。

此时repl必须指定assumetargetdefs属性,这表明只有两边数据库结构一致的情况下才可以启用DDL复制。另外,开启DDL同步不能再只映射单表了,对整个模式下的对象都有效。

加入DDL复制之后,数据复制的lag明显增加了。

16

清除数据库中DDL复制的设置

在实际测试中,由于我在同一个数据库中进行映射,映射表结构不一致,导致进程报了一系列的错误。这个时候需要把通过脚本创建的GG对象中的数据清空,安装目录下只提供了清除对象的脚本,可以如下操作:

首先要求把所有的GG进程停掉,包括mgr进程 SQL>@ddl_disable.sql --首先使DDL触发器失效 SQL>@ddl_remove.sql SQL>@marker_remove.sql

role_setup.sql没有对应的清除脚本,但是这块不影响配置信息的清除 然后重新再创建脚本。

4.2 oracle与db2同步

设置DB2数据库参数:

db2 connect to user using --DB2命令行工具登陆DB2 db2 get db cfg for --查看数据库参数配置

db2 update db cfg for using LOGRETAIN ON --设置LOGRETAIN参数 db2 update db cfg for using USEREXIT ON --设置USEREXIT参数 设置完后的参数配置相关显示如下:

Log retain for recovery status = RECOVERY User exit for logging status = YES

重启数据库并进行全库备份: db2 stop force db2 start

db2 backup db

指定归档路径:(OVERFLOWLOGPATH参数)

db2 connect to user using db2 update db cfg using overflowlogpath \

GoldenGate中执行add trandata补全日志:

GGSCI> dblogin sourcedb sample userid db2admin,password db2admin

-- 除oracle外的数据库都需要指定sourcedb参数,指定数据库名称

17

GGSCI>add trandata db2admin.

其他的同步配置与Oracle中一样,需要注意的是进程配置文件中登陆DB2的部分都需要指定sourcedb这个参数(ORACLE不需要,指定了反而报错)。还有就是复制进程的配置文件中一般不能指定assumetargetdefs参数,因为不是结构一致的数据库,需要通过defgen工具生成数据定义文件进行映射。

4.3 oracle与sybase同步

Sybase数据库设置

使用sybase的SQL Advantage,用sa用户登录,执行dbcc settrunc( 'ltm', valid )修改参数。

GoldenGate中连接Sybase

GGSCI> dblogin sourcedb zhoubase userid sa password sasasa 同样做如下设置

GGSCI>add trandata .

其他配置和Oracle中一样。

需要注意的是,Sybase是个区分大小写的数据库(sql server同样)。而Oracle不区分大小写,这就导致了表和字段在复制进程映射的时候,容易因大小写问题导致映射失败。解决方法是在表名外加上双引号或者单引号,参照如下复制进程的配置文件内容: /***

replicat repsy

sourcedefs d:\\tools\\GG\\gg10g\\dirdef\\extsy.ref

USERID ddw, PASSWORD ddw reperror default, discard

discardfile D:\\repsy.dsc,append,megabytes 100

MAP “dbo.BBTEST”, TARGET “DDW.AASYBASE”; --引号区分大小写 ***/

18

5、GoldenGate同步方案

GoldenGate工具虽小,但它提供表级字段级同步映射,而且同步性能优异、资源消耗低,使它的灵活性很强,可以提供多种数据同步、冗灾的解决方案。

5.1 使用GoldenGate初始化加载

这里所指的GoldenGate初始化加载,只是它指提供的direct load方式,因为其他几种官方介绍的初始化方式要么需要借助其他数据库工具(如extract->SQL*Loader),要么中间走了完全没必要的步骤导致性能很差(如extract->file->replicat方式),都不算纯正的GoldenGate方式。 初始化加载架构:

上图中,显示了初始化加载启用了两条同步路线:上面一条是真正的initial load,负责将源数据端的数据一次性发送到目标数据库;下面一条,其实就是普通的GoldenGate同步进程,负责抓取初始化加载时源端数据库进行的在线数据变化。因为在实际应用中,往往需要在生产库(源数据库)不停机的状态下,将数据加载到备用数据库(目标数据库)中并应用实时同步,在数据初始化的过程中,生产库将继续进行正常的事务操作,所以此时需要有抓取进程在初始化时开始将这些变化捕获,以免数据丢失。

实际部署时需要注意正确的执行顺序,大致可以分为以下几步: (1) 源端和目标端创建配置各个同步进程。

(2) 开启源端同步抓取进程(图上的Change Extract),开始捕获变化。 (3) 开启初始化进程(图上的Initial-Load Extract),开始数据初始化加载。 (4) 等初始化加载结束,开启目标端复制应用进程(图上的Change Replicat),开始

实时同步应用。

在目标端复制应用进程(图上的Change Replicat)中,需要在参数文件中配置HANDLECOLLISIONS参数,以避免重复应用第2和第3步之间的数据变化,因为这部分数据已经包含在初始化加载中传到目标数据库中了。

在这里需要特别提醒的一个概念上的问题,GoldenGate的初始化同步不会也不需要去初始化目标端的SCN号。这个问题在我与多位数据库DBA的交流中发现,他们往往以为GoldenGate是通过SCN来判断数据的应用情况的。GoldenGate的同步与Streams不同,它不需要依赖两端数据库保持一致的SCN来应用同步,实际上它只在抓取时可能会与数据库的SCN有关联(抓取时可以指定源数据库的特定SCN号开始解析日志),在trail传输以及目标端应用时,都和源端数据库的SCN毫无关系。它的实质是通过自己的一套队列文件检查

19

点机制来实现队列数据的管理,在目标端则通过数据的唯一键来定位数据行,trail文件最终解析成SQL语句在目标端数据库执行而实现数据的应用。所以这里的初始化加载,完全可以使用其他数据库工具来实现,比如说exp/imp、SQL*Loader、RMAN复制数据库等。 以下为一个简单的初始化加载的例子,对于实时同步配置同上面介绍的是一样的,这里不再说明,只列出初始化加载部分的进程配置。

5.1.1 GoldenGate初始化加载示例(direct load方式)

源端

添加提取进程:

GGSCI> add extract ext1,sourceistable --没有tranlog,意味着不是通过日志方式;没有begin XXX,表示

还未启动;使用sourceistable参数不会使用检查点机制 配置文件如下: /***

extract ext1

userid ddw,password ddw

rmthost 192.168.0.44, mgrport 7401

rmttask replicat, group rept1 --注意是rmttask,指定目标复制进程名 table ddw.test; ***/

不需要为该进程添加远端队列(rmttrail)。

目标端

添加复制应用进程:

add replicat rept1,specialrun --表示一次性加载 /***

replicat rept1

assumetargetdefs userid ddw,password ddw

reperror default, discard discardfile D:\\reptmy.dsc,append,megabytes 100

INSERTAPPEND --使用直接路径加载,提高加载速度

HANDLECOLLISIONS --当目标端已有数据时,略过重复数据错误 MAP ddw.test, TARGET ddw.test1; ***/

注意,这里的extract和replicat进程添加完后在info all中看不到这个进程,但是view report可以跟踪到。

要开始加载,在源端执行: GGSCI> start exttmy

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库GoldenGate安装部署(4)在线全文阅读。

GoldenGate安装部署(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/501840.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: