Sybase通过GoldenGate同步到mysql总结

1.1 源端sybase建立goldengate同步用户

1.1.1启动数据库

isql -U“用户名” -P“密码”-S“Sybase名称”

1.1.2创建数据设备(paronia_data为我自定义的库名_数据):

>disk init name = 'paronia_data',physname = '/opt/sybase/product/data/paronia_data.dat',size = '224M', directio = true, skip_alloc = true

>go

1.1.3创建日志设备(paronia_log为我自定义的库名_日志):

>disk init name = 'paronia_log',physname = '/opt/sybase/product/data/paronia_log.dat',size = '224M', directio = true, skip_alloc = true

>go

1.1.4创建数据库(新建的库:paronia ):

>CREATE DATABASE paronia ON paronia_data = '224M'

>go


1.1.5新增用户(用户名:admin  密码:password):

>sp_addlogin 'admin','password', @defdb = 'paronia', @deflanguage = 'us_english', @auth_mech = 'ANY'

>go


1.1.6将用户添加到新建数据库&授权:

>sp_adduser 'admin','password','public'

>go

>sp_role 'grant',sa_role,admin

>go

>sp_role 'grant',replication_role,admin

>go

>sp_role 'grant',sybase_ts_role,admin

>go

>sp_role 'grant',oper_role,admin

>go

>grant create table, create view, create procedure to admin

>go

1.2开启第二事务截断点

在需要同步的库上,开启第二事务截断点(需要管理员权限才能开启)

假设需要同步的库是paronia,则使用isql进入sybase命令行后,执行

use paronia

go

dbcc settrunc(ltm,valid)

go

目的:ogg的捕获进程可以成功捕获到事务日志变化的保证;如果没有开启此选项,extract进程启动将会失败。其实,如果没有开启此选项,当你使用ggsci进行添加附加日志的时候,ggsci也会提醒你没有开启某个库的第二事务截断点选项。

备注:开启这个需要慎重,可能对生产有一定影响;


1.3添加表级附加日志

将ggs_Linux_x64_sybase15_7_64bit.zip解压,并将解压后的文件夹移动到syabse的安装目录下,并重命名为ogg

cd sybase安装目录/ogg

进入ggsci控制台后,使用命令:

dblogin sourcedb 数据源,userid 用户名,password 密码

success后使用命令添加附加日志:

add trandata dbo.tb1; (这里的dbo.tb1的意思是,对dbo库下的tb1表添加附加日志。)

成功添加的话,将会看到enable的相关信息,同时,如果这里没对同步库开启ltm选项的话,将会看到一条提醒,不过不用担心,你过会再去开启也行,反正在extract进程启动之前开启就行。

1.4 源端配置

1、在源端上运行ogg,执行./ggsci

创建子目录create subdirs

2配置数据定义文件参数

创建source端sybase数据库需要复制同步的数据定义文件,

拷贝到target端相应目录下。

----配置数据定义文件参数

edit param defgen


参数文件内容:

defsfile /opt/sybase/ogg/dirdef/def_id.def

sourcedb paronia@SWH userid admin password password

TABLE dbo.stu;


-- shell命令执行以下命令,生成数据定义文件

./defgen  paramfile  /opt/sybase/ogg/dirprm/defgen.prm

--拷贝生成的数据定义文件到目标端数据定义目录下

PS:先在mysql安装目录下解压ggs_Linux_x64_MySQL_64bit.zip并重命名为ogg

cd mysql安装目录/ogg (创建子目录create subdirs见1.5)

scp def_id.def root@192.168.163.130:/usr/local/mysql/ogg/dirdef


3、管理进程MGR参数配置

edit params mgr


参数文件内容:

PORT 7839

DYNAMICPORTLIST 7840-7860

--AUTOSTART ER *

--AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3

PURGEOLDEXTRACTS /opt/sybase/ogg/dirdat/te*,usecheckpoints, minkeepfiles 10


4、抽取进程ext_st参数配置

edit params ext_st


参数文件内容:

EXTRACT ext_st

-- SETENV (NLS_LANG = AMERICAN_AMERICA.AL32UTF8)

sourcedb paronia@SWH,userid admin,password password

EXTTRAIL /opt/sybase/ogg/dirdat/id

DISCARDFILE /opt/sybase/ogg/dirrpt/ext_id.dsc , APPEND

REPORTCOUNT EVERY 10000 RECORDS, RATE

GETTRUNCATES

table dbo.stu;


edit params 配置文件中的各项说明为

Extract :指定extract的名字

SETENV():指定该extract启动时oracle相关的环境变量.

Userid , password :连接到源数据库的用户

Report:指定每天在日志中产生报告的时间

Reportrollover:指定每天汇报队列文件切换报告的时间

Gettruncates:告诉extract对truncate操作也要捕获

Warnlongtrans:超过个小时的交易为长交易,要在goldengate日志中进行记录,检查时间为指定的checkinterval。

Tranlogoptions:针对源数据库的一些配置选项,如数据库归档的位置等等,例如一些例子中的值是指当源和目标数据库字符集不一致,而且传输包含clob字段时,需要对clob中的字符集进行转换。

Fetchoptions:指定当从源数据库抓取数据时的一些选项,例如一些例子指不从undo tablespace取数据,而是从表里直接抽取。

Exttrail:本地队列文件,extract将数据从数据库日志抓取后存放在该队列文件。(抽取进程写这些文件,传输进程读取这些文件)

Discardfile:指定丢弃数据的存放位置。

Dynamicresolution:指定当extract从日志抓取变化数据时,根据当前的需要,动态解析表名,从而加快抓取进程的启动速度。

Table  .:指定要从源系统抓取那些表的数据,这里schema不能用通配符,table_name可以用通配符。


Passthru:表示传输进程在传输的过程中只负责文件传输,不进行任何转化。

Rmthost:目标端的机器IP地址或者主机名称。

Mgrport:目标端goldengate 管理进程manager运行的端口号。

Rmttrail:当传输进程将队列文件传输的目标端后放置的目录和队列文件。



ogg控制台执行:

add extract ext_st,tranlog,begin now

add exttrail /opt/sybase/ogg/dirdat/id,extract ext_st,megabytes 100


5、传输进程dp_st参数配置

edit params dp_st


参数文件内容:

EXTRACT dp_st

sourcedb paronia@SWH,userid admin,password password

RMTHOST 192.168.163.130,MGRPORT 7808

RMTTRAIL  /usr/local/mysql/ogg/dirdat/id

PASSTHRU

TABLE dbo.stu;


ogg控制台执行:

add extract dp_st,exttrailsource /opt/sybase/ogg/dirdat/id, begin now

add rmttrail /usr/local/mysql/ogg/dirdat/id,extract dp_st,megabytes 100

1.5 目标端配置

1、在目标端上运行ogg,执行./ggsci

创建子目录create subdirs

2、管理进程MGR参数配置

edit params mgr


参数文件内容:

PORT 7808

DYNAMICPORTLIST 7810-7909

--AUTOSTART ER *

AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3

PURGEOLDEXTRACTS /usr/local/mysql/ogg/dirdat/*,usecheckpoints, minkeepdays 3

LAGREPORTHOURS 1

LAGINFOMINUTES 30

LAGCRITICALMINUTES 45

ACCESSRULE, PROG *, IPADDR 192.168.*.*, ALLOW


3、ogg检查点配置

Ogg控制台登录mysql库

dblogin sourcedb paronia@192.168.163.130:3306 userid root password 123456


执行

add checkpointtable paronia.checkpoint_table

4、rep进程rep_tb参数配置

目的:将源端投递过来的trail文件进行解密、分析,将源端的增量数据同步更新到目标数据库。

edit params rep_st

参数文件内容:

replicat rep_st

-- SETENV (NLS_LANG="MERICAN_AMERICA.ZHS16GBK")

targetdb paronia@192.168.163.130:3306 userid root password 123456

handlecollisions

sourcedefs /usr/local/mysql/ogg/dirdef/def_id.def

reperror default,discard

discardfile /usr/local/mysql/ogg/dirrpt/rep_st.dsc,append,megabytes 50

MAP dbo.stu,TARGET paronia.stu;


REPLICAT进程参数配置说明:ASSUMETARGETDEFS:假定两端数据结构一致使用此参数;SOURCEDEFS:假定两端数据结构不一致,使用此参数指定源端的数据结构定义文件,该文件需要由GlodenGate工具产生。MAP:用于指定源端与目标端表的映射关系;MAPEXCLUDE:用于使用在MAP中使用*匹配时排除掉指定的表;REPERROR:定义出错以后进程的响应,一般可以定义为两种:ABEND,即一旦出现错误即停止复制,此为缺省配置;DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中。DISCARDFILE:定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;SQLEXEC:在进程运行时首先运行一个SQL语句;GROUPTRANSOPS:将小交易合并成一个大的交易进行提交,减少提交次数,降低系统IO消耗。MAXTRANSOPS:将大交易拆分,每XX条记录提交一次。


ogg控制台执行:

add replicat rep_st,exttrail /usr/local/mysql/ogg/dirdat/id,checkpointtable paronia.checkpoint_table

1.6 启动测试

--按照顺序执行

源端执行:记得把ogg文件夹都给777权限:chmod -R 777 ogg

1、start mgr ①

2、start * ③

目标端执:

1、start mgr  ②

2、Start * ④

启动成功,即可在sybase端试试插入数据,更新数据,删除数据,是否会进行同步


说明:无论源还是目标,启动各extract/replicat进程前需要启动mgr进程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容