标签:
Oracle GoldenGate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。参考图如下:
从上图可以知道,Ogg的同步实现方式有两种:
既然存在两种同步方式,存在即有理,但是我还是推荐使用第二种方式同步数据。因为这样本地有保存Trail文件,有保障一点。所以我下面的介绍也是基于第二种方式来进行同步的。
假设需要同步的库是test,则使用isql进入sybase命令行后,执行 use test go dbcc settrunc(ltm,valid) go 目的:ogg的捕获进程可以成功捕获到事务日志变化的保证;如果没有开启此选项,extract进程启动将会失败,各位可以试验一下。其实,如果没有开启此选项,当你使用ggsci进行添加附加日志的时候,ggsci也会提醒你没有开启某个库的第二事务截断点选项。 注意:这里的ltm选项可以说又爱又恨啊,为什么这么说呢,请看我另外一篇文章。 |
3.进入ggsci控制台,使用dblogin访问数据库,添加表级附加日志;
进入ggsci控制台后,使用命令: dblogin sourcedb 数据源,userid 用户名,password 密码 注意:因为gg是oracle的产品,所以其他的数据库需要使用odbc建立数据源,让oracle能访问到其数据库,如何建立数据源,可以去上度娘,这里就不做介绍了。 success后使用命令添加附加日志: add trandata test.test; (这里的test.test的意思是,对test库下的test表添加附加日志。) 成功添加的话,将会看到enable的相关信息,同时,如果这里没对同步库开启ltm选项的话,将会看到一条提醒,不过不用担心,你过会再去开启也行,反正在extract进程启动之前开启就行。 |
4.配置ogg针对源数据库(Sybase数据库)的捕获进程;
prm文件: EXTRACT ext_test --捕获进程名称 sourcedb test,userid sa,password 123456 EXTTRAIL dirdat/te DISCARDFILE dirrpt/ext_test.dsc , APPEND REPORTCOUNT EVERY 10000 RECORDS, RATE GETTRUNCATES table dbo.test; --声明需要捕获数据变化的表 ggsci控制台: edit params ext_test(将会创建一个ext_test.prm的参数文件,将上述参数复制进该文件) add extract ext_test,tranlog,begin now(创建extract进程) add exttrail dirdat/te,extract ext_test,megabytes 100(创建exttrail,既抓取数据后记录到本地trail文件) 启动extract进程: start ext_test 如无意外,进程启动成功。如果这里启动失败的话,请使用命令,view report ext_test,查看错误报告,如果解决不了,可留下评论,博主看到会帮你解决。 |
5.源端配置、启动数据泵进程
目的:由于Ogg将捕获到的数据变化记录为自身定义的trail文件并存放于本地文件中,故需要使用数据泵进程将这些trail文件远程投递到目标机上。 ggsci控制台: edit params dp_test 参数文件配置: EXTRACT dp_test add extract dp_test,exttrailsource dirdat/te(这里创建数据泵进程,trail源是刚刚捕获进程设置的trail路径) add rmttrail D:\ogg112101_ggs_Windows_x86_ora11g_32bit\dirdat\du,extract dp_test,megabytes 100(这里创建rmttrail定义) start dp_test 如无意外,进程成功开启。这里要注意的一点是,准备投递过去的那台电脑,必须先安装好ogg,由于博主这里是使用同一台电脑,所以博主这里安装了两个Ogg,一个for sybase,一个for oracle,两个是不同端口的。 |
6.目标端配置、启动应用进程
目的:将源端投递过来的trail文件进行解密、分析,将源端的增量数据同步更新到目标数据库。 目标端ggsci: edit params rep_test 参数文件配置: REPLICAT rep_test Dblogin userid ogg, password 123456(访问oracle数据库,目的是建checkpoint表) Add checkpointtable ogg.chkpt_test(表名随意,有意义就行) add replicat rep_test,exttrail dirdat/du,CHECKPOINTTABLE ogg.chkpt_test(这里的exttrail,是指源端投递过来的trail文件) start rep_test 启动成功,即可在sybase端试试插入数据,更新数据,删除数据,是否会进行同步。 |
标签:
原文地址:http://www.cnblogs.com/tan-java/p/5791739.html