1源端和目标端数据库版本
源端:SqlServer 2012
目标端:oracle 11g
2安装Goldengate
Oracle官方帮助文档:
https://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/goldengate/12c/sql_cdcrep/sql_cdcrep.html
参考:
https://www.cnblogs.com/margiex/p/7489250.html?tdsourcetag=s_pcqq_aiomsg
2.1安装环境
2.1.1建立ODBC 数据源
参考:https://jingyan.baidu.com/article/ed2a5d1f6d5cad09f6be17ab.html
2.1.2为源库创建用户
为MS SQL端创建用户,打开sqlserver数据库通过目录:安全性/登陆名右击打开如下图示,取消强制密码策略选框,
2.1.3设置SqlServer完整备份
通过右键单击数据库,选择 Properties 并检查 Recovery model 的值,可以轻松检查该数据库是否处于完全恢复模式。
如果不是完全恢复模式,需要修改为完全恢复:
右键单击数据库,选择任务(Tasks),然后选择备份(Back Up)。这将启动 Back Up Database 对话框。确认 Backup type 配置为完整(Full),然后单击 OK。
稍等片刻会有弹出框
2.1.4启动sqlagent
agent用于启动CDC对应的job, 所以必须要启动agent才能正常同步。
2.1.5源端数据库CDC开启
执行以下语法:
–查看数据库uhisdb是否启用CDC
SELECT name,is_cdc_enabled FROM sys.databases t where t.name=uhisdb
如未开启执行以下命令:
use uhisdb
go
EXECUTE sys.sp_cdc_enable_db;
go;
2.1.6为源端表添加附加日志
add trandata
2.2.2添加windows服务
2.2.2.1源库上创建OGG schema
用于存放配置表,其中cdc schema由启用CDC步骤的存储过程创建。
命令如下:
USE [source]
GO
CREATE SCHEMA [ogg] AUTHORIZATION [dbo]
GO
2.2.2.2创建Globals文件(新内容)
OGG目录下,新建globals文件,输入如下内容
ggschema ogg
2.2.2.3创建并配置globals文件
双击ggsci.exe
GGSCI> edit params ./GLOBALS
内容:
MGRSERVNAME MGRHIS
ggschema ogg(新内容)
2.2.2.4创建manager进程
在CMD命令行下执行(CMD路径需先切换到ogg文件夹路径)
Goldengate> INSTALL ADDSERVICE ADDEVENTS
完成后即可在服务列表中看见刚才创建的服务
2.2.2.5删除sql server自带的清除作业
手动删除:登录数据库–Sql server代理》作业》cdc.uhisdb_cleanup,右键选择删除
或者执行命令:EXECUTE sys.sp_cdc_drop_job ‘cleanup’;
在doc界面,进入ogg的目录:
d:>OGG\ogg_cdc_cleanup_setup.bat createJob username password databasename servername\instancename ggschema
注:使用ogg的用户名,密码,数据库名,机器名,使用的ggschema名称必须与您在GLOBALS文件的GGSCHEMA参数中使用的名称相同
3配置源端
3.1生成Defgen表结构文件
由于源端数据库与目标端数据库为异构表,故需要先在源端生成一份表结构映射文件。
a)双击ggsci.exe
GGSCI>edit params oa
内容:
defsfile ./dirdef/oa.def
sourcedb kangdb,userid sa,password sa
table residence_sick_price_item;
b)在CMD下执行
Goldengate> defgen paramfile ./dirprm/oa.prm
生成oa.def文件存在于源端Goldengate安装路径中的dirdef文件里,将其拷贝到目标端相应dirdef文件夹中即可。
3.2配置源端MGR进程
a)双击ggsci.exe
GGSCI>edit params mgr
内容:
PORT 7809
AUTOSTART EXTRACT *
AUTORESTART EXTRACT ,RETRIES 3,WAITMINUTES 5,RESETMINUTES 60
PURGEOLDEXTRACTS ./dirdat/,USECHECKPOINTS,MINKEEPDAYS 2
b)启动manger进程
GGSCI>start mgr
3.3配置抽取线程
3.3.1添加配置文件
b)双击ggsci.exe
GGSCI>edit params ex01
内容:
EXTRACT ex01
SOURCEDB kangdb,userid sa,password sa
TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT
discardfile ./dirrpt/exemr.dsc, purge
exttrail ./dirdat/ms, megabytes 2000
注:数据抽取不出来的时候可以加上这些参数试试
–GETUPDATES
–GETAPPLOPS
GETREPLICATES
dynamicresolution
wildcardresolve dynamic
gettruncates
tranlogoptions
3.3.2添加抽取线程
在mgr中增加抽取线程ex01
GGSCI> add extract ex01,tranlog,begin now
GGSCI> add exttrail ./dirdat/ms,extract exemr01, megabytes 2000
3.4配置投递线程
3.4.1添加配置文件
a)双击ggsci.exe
GGSCI> edit params ep01
内容:
EXTRACT ep01
SOURCEDB kang,userid sa,password sa
TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT
RMTHOST 10.0.5.45, MGRPORT 7809
RMTTRAIL ./dirdat/ms
TABLE dbo.residence_sick_price_item;
3.4.2添加投递线程
在mgr中增加抽取线程ep01
GGSCI> add extract ep01,exttrailsource ./dirdat/ms
GGSCI> add rmttrail ./dirdat/ms,extract epemr01, megabytes 2000
4配置目标端
4.1新增目标库检查点表
在目标库上使用用户 HDCOGG登陆,执行下面语法创建专属表,该表创建语法的存在位置:./goldengate/ chkpt_ora_create.sql
SQL>conn hdcogg/hdcogg2012;
SQL>@d:\goldengate\chkpt_ora_create.sql
4.2配置源端MGR进程
a)双击ggsci.exe
GGSCI>edit params mgr
内容:
port 7809
AUTOSTART REPLICAT *
AUTORESTART REPLICAT ,RETRIES 3,WAITMINUTES 5,RESETMINUTES 60
PURGEOLDEXTRACTS ./dirdat/,USECHECKPOINTS,MINKEEPDAYS 7
b)启动manger进程
GGSCI>start mgr