GoldenGate同步解决方案及性能测试

上传人:re****.1 文档编号:552753740 上传时间:2022-09-30 格式:DOCX 页数:25 大小:398.24KB
返回 下载 相关 举报
GoldenGate同步解决方案及性能测试_第1页
第1页 / 共25页
GoldenGate同步解决方案及性能测试_第2页
第2页 / 共25页
GoldenGate同步解决方案及性能测试_第3页
第3页 / 共25页
GoldenGate同步解决方案及性能测试_第4页
第4页 / 共25页
GoldenGate同步解决方案及性能测试_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《GoldenGate同步解决方案及性能测试》由会员分享,可在线阅读,更多相关《GoldenGate同步解决方案及性能测试(25页珍藏版)》请在金锄头文库上搜索。

1、GoldenGate 同步解决方案及性能测试目录1、GoldenGate 同步方案 21.1 使用 GoldenGate 初始化加载 21.2 一对多数据同步(广播复制)41.3 多对一数据同步(集中复制)51.4 数据转换和过滤61.5关于目标端高数据安全性下的GoldenGate配置方案101.6GoldenGate 双向复制(active-active) 132、GoldenGate 数据同步性能测试 162.1 测试中主要监测数据和监测方式162.2测试脚本和GoldenGate配置172.3 测试步骤212.4 性能测试结果231、Gol出nGate同步方案GoldenGate 工具

2、虽小,但它提供表级字段级同步映射,而且同步性能优异、资源消耗低,使它的灵活性很强,可以提供多种数据同步、冗灾的解决方案。1.1 使用 GoldenGate 初始化加载这里所指的 GoldenGate 初始化加载,只是它指提供的 direct load 方式,因为其他几种 官方介绍的初始化方式要么需要借助其他数据库工具(如extract-SQL*Loader),要么中间 走了完全没必要的步骤导致性能很差(如 extract-file-replicat 方式),都不算纯正的 GoldenGate 方式。初始化加载架构:TRAILTARGET DSGollefitarChange ReplicalI

3、nitial-Load l Rep I Scat jChaiigaExtracthnttal-Load l Extraci 丄SOURCE DSTranactio-n Log ar Lj Tsibl上图中,显示了初始化加载启用了两条同步路线:上面一条是真正的initial load,负责 将源数据端的数据一次性发送到目标数据库;下面一条,其实就是普通的GoldenGate同步 进程,负责抓取初始化加载时源端数据库进行的在线数据变化。因为在实际应用中,往往需 要在生产库(源数据库)不停机的状态下,将数据加载到备用数据库(目标数据库)中并应 用实时同步,在数据初始化的过程中,生产库将继续进行正常的

4、事务操作,所以此时需要有 抓取进程在初始化时开始将这些变化捕获,以免数据丢失。实际部署时需要注意正确的执行顺序,大致可以分为以下几步:( 1) 源端和目标端创建配置各个同步进程。(2)开启源端同步抓取进程(图上的Change Extract),开始捕获变化。(3) 开启初始化进程(图上的Initial-Load Extract),开始数据初始化加载。(4)等初始化加载结束,开启目标端复制应用进程(图上的Change Replicat),开始 实时同步应用。在目标端复制应用进程(图上的Change Replicat)中,需要在参数文件中配置HANDLECOLLISIONS参数,以避免重复应用第2

5、和第3步之间的数据变化,因为这部分数据 已经包含在初始化加载中传到目标数据库中了。在这里需要特别提醒的一个概念上的问题, GoldenGate 的初始化同步不会也不需要去 初始化目标端的 SCN 号。这个问题在我与多位数据库 DBA 的交流中发现,他们往往以为 GoldenGate是通过SCN来判断数据的应用情况的。GoldenGate的同步与Streams不同,它 不需要依赖两端数据库保持一致的 SCN 来应用同步,实际上它只在抓取时可能会与数据库 的SCN有关联(抓取时可以指定源数据库的特定SCN号开始解析日志),在trail传输以及目 标端应用时,都和源端数据库的 SCN 毫无关系。它的

6、实质是通过自己的一套队列文件检查 点机制来实现队列数据的管理,在目标端则通过数据的唯一键来定位数据行,trail文件最终 解析成 SQL 语句在目标端数据库执行而实现数据的应用。所以这里的初始化加载,完全可 以使用其他数据库工具来实现,比如说exp/imp、SQL*Loader、RMAN复制数据库等。以下为一个简单的初始化加载的例子,对于实时同步配置同上面介绍的是一样的,这里 不再说明,只列出初始化加载部分的进程配置。111 GoldenGate初始化加载示例(direct load方式)源端 添加提取进程:GGSCI add extract ext1,sourceistable -没有 tr

7、anlog,意味着不是通过日志方式;没有 begin xxx,表示还未启动;使用 sourceistable 参数不会使用检查点机制 配置文件如下:/*extract ext1 userid ddw,password ddwrmthost 192.168.0.44, mgrport 7401rmttask replicat, group rept1 -注意是rmttask,指定目标复制进程名 table ddw.test;*/不需要为该进程添加远端队列(rmttrail)。目标端添加复制应用进程:add replicat rept1,specialrun-表示一次性加载 /*replicat

8、rept1assumetargetdefsuserid ddw,password ddwreperror default, discarddiscardfile D:reptmy.dsc,append,megabytes 100INSERTAPPEND-使用直接路径加载,提高加载速度HANDLECOLLISIONS-当目标端已有数据时,略过重复数据错误MAP ddw.test, TARGET ddw.test1;* /注意,这里的extract和replicat进程添加完后在info all中看不到这个进程,但是view report 可以跟踪到。要开始加载,在源端执行GGSCIstart e

9、xttmy目标端的 replicat 进程不需要去启动,会自动进行数据应用。112与Oracle数据泵数据加载速度的比较按照5.6.1 示例中的配置,对一张600万行数据的测试表进行初始化加载,完全加载结 束大约需要50 分钟。使用Oracle 10g的数据泵工具对同样的表,通过DB Link的方式进行初始化加载:C:impdp ddw/ddworcl job_name=zhouimp tables=test CONTENT=DATA_ONLY network_link=DB148.REGRESS.RDBMS.DEV.US.ORACLE.COM只需要1分半钟就导完了600万行数据。两者的执行效

10、率差别太大了。 所以在一般情况下,尽量使用其他高效的数据库传输工具来完成初始化加载,而不要用 GoldenGate 提高的初始化功能。1.2一对多数据同步(广播复制)一对多数据同步实现架构:SOURCEDePrimary ExtractEXTRACTREPLICATEXTTRMLEXTRACTRMTTRAILRMTTRAIL remote trail 2GoldenGate 对于多对一的实现方式,就是对于同一个源建立多个提取进程同步进行, 也就是说,对应不同的目标端,分别配置同步进程进行同步。配置过程与前面是一样的。这里的多个目标端,有可能对应不同的数据库,也有可能是同一个库中的不同对象。如

11、果是同步到同一个库中的不同对象,除了分别配置同步进程以外,有时候也可以在一个进程 中完成,比如,可以在复制端如此配置:/*REPLICAT rep146e1USERID coss3,PASSWORD coss3 assumetargetdefsREPERROR default,discardDISCARDFILE d:ggoraclelogrep146e1.dsc,append,megabytes 200 HANDLECOLLISIONSMAP ddw.test, TARGET ddw.test1;MAP ddw.test, TARGET ddw.test2-同一张表同时对应多个表MAP dd

12、w.test, TARGET ddw.test3;*/当然,如果同步数据负载较大的情况下,还是建议在进程级别分开1.3 多对一数据同步(集中复制)多对一数据同步架构:SOURCEDB EXTRACT EXTTRAIL EXTRACT RMITRA LPrimary ExtractPrimary ExtractSOURCEDSEXTRACT EXTTRAIL EXTRACT RMTHOSTRMTTRAIL REPLICATTARGETDB 多对一数据同步实现方式同一对多,也是将extract-replicat将进程拆分成多个。多对一同步需要注意的是,所有源端和目标端的表都应该使用一致的主键约束,

13、而且在 不同的源端不应该对同一键值的数据进行维护。也就是说,需要在业务上将不同源的数据隔 离开来,以防止对同一数据的覆盖更改等问题。一般用于维护业务的区域性数据、然后统一 同步到业务中心数据源的业务场景。还有一个需要注意的方面是 TRUCATE 的捕获,在多对一的配置下应避免捕获。因为 GoldenGate 处理 TRUNCATE 同步是直接传输了这个语句,并不会提供具体删除的数据信息(没有REDO也无法提供),所以无论哪个源端执行了TRUNCATE,如果同步到了目标端,都 会直接把目标端的表数据直接删光,无论目标数据是否是来源于这个源,造成数据的不一致。1.4 数据转换和过滤GlodenGa

14、te中支持字段映射、数据筛选转换,以及调用执行数据库脚本或者SQL语句等,在一定条件下,甚至可以实现实时ETL的功能。1.4.1 字段映射GoldenGate中字段的映射一般配置在复制应用端的MAP参数中,字段映射要求两边尽 量一致的字段的类型,当然也允许CHARVARCHAR之类的转换。对于不同字段类型的映射, 最好详细参考 GoldenGate 官方文档以得到足够的支持信息,并做好测试验证以防止数据丢 失等。以下是字段映射的配置例子:例子 1:/*MAP ddw.altest, target ddw.a2test-target 前一定要留个空格,否则会报错 COLMAP(id = id,

15、type1 = type1, sell_date1 = s e l l _d a t e 2) -字段映射配置 * /例子 2:/*MAP ddw.a1test, target ddw.a2test,COLMAP(USEDEFAULTS, sell_date1 = sell_date2); -usedefaults表示自动映射同名字段MAP ddw.a3test, target ddw.a4test;-不同的表映射,不同的 mapMAP “ddw.a5test”, target “ddw.a6test -在有些大小写敏感的数据源需要引号区分大小写 * /例子 3:/*MAP ddw.a1test, target ddw.a2test,COLMAP (USEDEFAULTS, num =

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号