ogg oracle to sybase,Oracle数据库之Ogg: Sybase to Oracle个人

本文主要向大家介绍了Oracle数据库之Ogg: Sybase to Oracle个人,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

Goldengate同步原理:

Oracle GoldenGate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。参考图如下:

从上图可以知道,Ogg的同步实现方式有两种:

在源端建立Extract进程捕获日志变化,形成Ogg自身定义的Trail文件,Trail文件不保存在本地,通过网络方式,直接传输到目的端;然后目的端通过Replicat进程解析Trail文件,将变化支付到目标端数据库;

在 源端建立Extract进程捕获日志变化,形成Ogg自身定义的Trail文件,Trail文件保存在本地,然后在源端建立Data Pump进程(实际也是Extract进程,不过职能不同,我们在叫法上将其区分);然后通过Data Pump进程将产生的Trail文件传输到目的端;然后目的端通过Replicat进程解析Trail文件,将变化支付到目标端数据库;

既然存在两种同步方式,存在即有理,但是我还是推荐使用第二种方式同步数据。因为这样本地有保存Trail文件,有保障一点。所以我下面的介绍也是基于第二种方式来进行同步的。

同步思路:

由于源数据库和目标数据库属于异构关系,表结构不同,故需要使用Ogg提供的表结构定义工具将源数据库的表结构定义出来,提供给目标数据库解析。

数据同步存在数据初始化和数据增量同步。故此,在准备进行数据初始化时,需保证Ogg对源数据库的捕获进程为开启状态。这样,便可以实现源/目标数据库的数据一致性。

同步步骤:

源端sybase建立goldengate同步用户,需要权限 sa_role,replication_role;

在需要同步的库上,开启第二事务截断点;

假设需要同步的库是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

5.源端配置、启动数据泵进程

目的:由于Ogg将捕获到的数据变化记录为自身定义的trail文件并存放于本地文件中,故需要使用数据泵进程将这些trail文件远程投递到目标机上。

ggsci控制台:

edit params dp_test

参数文件配置:

EXTRACT dp_testsourcedb test,userid sa,password 123456RMTHOST 127.0.0.1(准备投递的远程主机Ip), MGRPORT 7810(远程主机mgr进程的端口号)RMTTRAIL D:\ogg112101_ggs_Windows_x86_ora11g_32bit\dirdat\dudiscardfile  dirrpt/dumpdsc.dsc,append,megabytes 1024TABLE dbo.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_testSOURCEDEFS dirdef/def_test.defUSERID ogg, PASSWORD 123456Discardfile dirrpt/rep_test.dsc,append,megabytes 1024REPERROR (DEFAULT, discard)Map dbo.test, TARGET ogg.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端试试插入数据,更新数据,删除数据,是否会进行同步。

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值