Oracle GoldenGate 之 SqlServer数据同步到Mysql数据库

前端之家收集整理的这篇文章主要介绍了Oracle GoldenGate 之 SqlServer数据同步到Mysql数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

项目描述:

sqlSever 2008 R2中的数据实时或定时的同步到MysqL 5.6数据库中。

OS DATABASE
来源数据库 Window 2008 MS sql 2008 R2
目标数据库 Linux MysqL 5.6


实施方案:

如何初始化数据?

Navicat Premium--可以很方便的将MSsql SERVER中的数据结构和数据初始化到MysqL数据库中。

如何实现实时同步?

方案1:SyncNavigator--实现MSsql SERVER和MysqL数据库之间的数据同步(可选在调度时间和机制)。
方案2:Oracle Goldengate--灵活的实现MSsql SERVER和MysqL数据库之间的数据同步。

两种方案的利弊?

方案1:,配置简单,但是对于目标端表中已经存在数据的情况处理麻烦(无法创建同步字段,这个字段是软件同步进程需要的)
方案2,配置复杂,效率高。

使用OGG来实现MSsql SERVER和MysqL之间的数据同步

OGG 软件:

V34020-01
Oracle GoldenGate V11.2.1.0.2 for sql Server on Windows (64bit)
V32399-01
Oracle GoldenGate V11.2.1.0.1 for MysqL 5.x on Linux x86-64)

源端MSsql SERVER配置

安装OGG

  1. C:\OGG>ggsci
  2. OracleGoldenGateCommandInterpreterforsqlServer
  3. Version11.2.1.0.2OGGCORE_11.2.1.0.2T3_PLATFORMS_120724.2205
  4. Windowsx64(optimized),MicrosoftsqlServeronJul25201203:04:52
  5. Copyright(C)1995,2012,Oracleand/oritsaffiliates.Allrightsreserved.
  6. GGSCI(WIN-UGCMTTOTKE7)1>createsubdirs
  7. CreatingsubdirectoriesundercurrentdirectoryC:\OGG
  8. ParameterfilesC:\OGG\dirprm:alreadyexists
  9. ReportfilesC:\OGG\dirrpt:created
  10. CheckpointfilesC:\OGG\dirchk:created
  11. ProcessstatusfilesC:\OGG\dirpcs:created
  12. sqlscriptfilesC:\OGG\dirsql:created
  13. DatabasedefinitionsfilesC:\OGG\dirdef:created
  14. ExtractdatafilesC:\OGG\dirdat:created
  15. TemporaryfilesC:\OGG\dirtmp:created
  16. StdoutfilesC:\OGG\dirout:created
  17. GGSCI(WIN-UGCMTTOTKE7)2>exit
退出后,切换到OGG目录下

配置ODBC数据源

  1. MicrosoftsqlServerODBC驱动程序版本06.01.7601
  2. 数据源名称:oa_test
  3. 数据源描述:
  4. 服务器:WIN-UGCMTTOTKE7
  5. 数据库:(Default)
  6. 语言:(Default)
  7. 翻译字符数据:Yes
  8. 日志长运行查询:No
  9. 日志驱动程序统计:No
  10. 使用区域设置:No
  11. 预定义的语句选项:在断开时删除临时存储过程
  12. 使用故障转移服务器:No
  13. 使用ANSI引用的标识符:Yes
  14. 使用ANSI的空值,填充和警告:Yes
  15. 数据加密:No

配置OGG抽取进程

将新生成的def文件拷贝到目标端!


查看mssql数据库处于完全恢复模式。



EXTRACT EMSSQL
SOURCEDB oa_test,userid yunwei,password "******"
TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT
RMTHOST 192.168.2.34,MGRPORT 7809
RMTTRAIL ./dirdat/ms
TABLE dbo.TEmployees;
TABLE dbo.TRecords;

执行全库备份。然后启动进程。并且trunc. log on chkpt要设置为false

目标端MysqL配置:

安装:

填写如下内容
replicat rMysqL
TARGETDB oa@127.0.0.1:3306,userid root,password xxx
assuMetargetdefs
sourcedefs ./dirdef/oa.def
reperror default,discard
discardfile ./dirrpt/rMysqL.dsc,append,megabytes 100
MAP dbo.TEmployees,TARGET oa.temployees,keycols(Employee_ID);
MAP dbo.TRecords,TARGET oa.trecords,keycols(Record_ID),colmap(usedefaults,RinOut=inOut);

至此!配置完成。
接下来就是进行insert update delete测试。

小插曲:

sql server表中的bit数据类型在抓换到MysqL中时为bool(tinyint)类型,这时候ogg会报错,提示类型不匹配。需要手动将MysqL中的相关类型设置为char(1)就OK了。
原文链接:https://www.f2er.com/oracle/210033.html

猜你在找的Oracle相关文章