Oracle GoldenGate 之 SqlServer数据同步到Mysql数据库
发布时间:2020-12-12 15:10:15 所属栏目:百科 来源:网络整理
导读:项目描述: 将SqlSever 2008 R2中的数据实时或定时的同步到Mysql 5.6数据库中。 OS DATABASE 来源数据库 Window 2008 MS SQL 2008 R2 目标数据库 Linux MySQL 5.6 实施方案: 如何初始化数据? Navicat Premium--可以很方便的将MSSQL SERVER中的数据结构和数
项目描述:
将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
[plain]
view plain
copy
print
?
- C:OGG>ggsci
-
- OracleGoldenGateCommandInterpreterforSQLServer
- Version11.2.1.0.2OGGCORE_11.2.1.0.2T3_PLATFORMS_120724.2205
- Windowsx64(optimized),MicrosoftSQLServeronJul25201203:04:52
- Copyright(C)1995,2012,Oracleand/oritsaffiliates.Allrightsreserved.
-
- GGSCI(WIN-UGCMTTOTKE7)1>createsubdirs
- CreatingsubdirectoriesundercurrentdirectoryC:OGG
- ParameterfilesC:OGGdirprm:alreadyexists
- ReportfilesC:OGGdirrpt:created
- CheckpointfilesC:OGGdirchk:created
- ProcessstatusfilesC:OGGdirpcs:created
- SQLscriptfilesC:OGGdirsql:created
- DatabasedefinitionsfilesC:OGGdirdef:created
- ExtractdatafilesC:OGGdirdat:created
- TemporaryfilesC:OGGdirtmp:created
- StdoutfilesC:OGGdirout:created
- GGSCI(WIN-UGCMTTOTKE7)2>exit
退出后,切换到OGG目录下
copy
C:OGG>INSTALLADDSERVICE
Service'GGSMGR'created.
Installprogramterminatednormally.
C:OGG>
配置ODBC数据源
[plain]
view plain
copy
print
?
- MicrosoftSQLServerODBC驱动程序版本06.01.7601
-
-
- 数据源名称:oa_test
- 数据源描述:
- 服务器:WIN-UGCMTTOTKE7
- 数据库:(Default)
- 语言:(Default)
- 翻译字符数据:Yes
- 日志长运行查询:No
- 日志驱动程序统计:No
- 使用区域设置:No
- 预定义的语句选项:在断开时删除临时存储过程
- 使用故障转移服务器:No
- 使用ANSI引用的标识符:Yes
- 使用ANSI的空值,填充和警告:Yes
- 数据加密:No
配置OGG抽取进程
copy
GGSCI(WIN-UGCMTTOTKE7)8>dbloginsourcedboa_test,useridyunwei,password"********"
2014-07-2114:39:28INFOOGG-03036Databasecharactersetidentifiedaswindows-936.Locale:zh_Hans_CN
2014-07-2114:39:28INFOOGG-03037SessioncharactersetidentifiedasGBK.
Successfullyloggedintodatabase.
copy
GGSCI(WIN-UGCMTTOTKE7)12>addtrandatadbo.TEmployees
2014-07-2114:43:51WARNINGOGG-01483Thekeyfortable[oa_test.dbo.TEmployees]containsoneormorevariablelength
columns.Thesecolumnsmaynothavetheirpre-imageswrittentothetransactionlogduringupdates.<spanstyle="color:#ffff99;">PleaseuseKEYCOLS</span>
tospecifyakeyforOracleGoldenGatetouseonthistable.
Loggingofsupplementallogdataisenabledfortabledbo.TEmployees
GGSCI(WIN-UGCMTTOTKE7)13>addtrandatadbo.TRecords
2014-07-2114:46:04WARNINGOGG-01483Thekeyfortable[oa_test.dbo.TRecords]containsoneormorevariablelengthco
lumns.Thesecolumnsmaynothavetheirpre-imageswrittentothetransactionlogduringupdates.PleaseuseKEYCOLStospecifyakeyforOracleGoldenGatetouseonthistable.
Loggingofsupplementallogdataisenabledfortabledbo.TRecords
GGSCI(WIN-UGCMTTOTKE7)14>editparamsoa
copy
编辑如下内容:
copy
defsfilec:oggdirdefoa.def
sourcedboa_test,password"******"
tabledbo.TEmployees;
tabledbo.TRecords;
copy
执行生成表结构定义文件
copy
C:OGG>defgenparamfilec:oggdirprmoa.prm
将新生成的def文件拷贝到目标端!
查看mssql数据库处于完全恢复模式。
copy
GGSCI(WIN-UGCMTTOTKE7)3>editparammgr
填写如下内容:
port 7809
copy
GGSCI(WIN-UGCMTTOTKE7)5>startmgr
StartingManagerasservice('GGSMGR')...
Servicestarted.
copy
GGSCI(WIN-UGCMTTOTKE7)8>infoall
ProgramStatusGroupLagatChkptTimeSinceC
MANAGERRUNNING
GGSCI(WIN-UGCMTTOTKE7)9>addextractemssql,tranlog,beginnow
EXTRACTadded.
GGSCI(WIN-UGCMTTOTKE7)10>addrmttrail./dirdat/ms,extractemssql
RMTTRAILadded.
copy
GGSCI(WIN-UGCMTTOTKE7)11>editparamsemssql
编辑内容如下:
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配置:
安装:
可参考mysql版本的OGG安装步骤,大同小异
配置复制进程:
copy
GGSCI(localhost.localdomain)2>dbloginsourcedboa@127.0.0.1:3306,useridroot,passwordxxxx
Successfullyloggedintodatabase.
copy
GGSCI(localhost.localdomain)3>addreplicatrmysql,exttrail./dirdat/ms,nodbcheckpoint
REPLICATadded.
GGSCI(localhost.localdomain)4>editparamsrmysql
copy
?
填写如下内容:
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了。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!