加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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中的数据结构和数
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 copyprint ?
  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:OGGdirprm:alreadyexists
  9. ReportfilesC:OGGdirrpt:created
  10. CheckpointfilesC:OGGdirchk:created
  11. ProcessstatusfilesC:OGGdirpcs:created
  12. SQLscriptfilesC:OGGdirsql:created
  13. DatabasedefinitionsfilesC:OGGdirdef:created
  14. ExtractdatafilesC:OGGdirdat:created
  15. TemporaryfilesC:OGGdirtmp:created
  16. StdoutfilesC:OGGdirout:created
  17. GGSCI(WIN-UGCMTTOTKE7)2>exit
退出后,切换到OGG目录下 copy C:OGG>INSTALLADDSERVICE
  • Service'GGSMGR'created.
  • Installprogramterminatednormally.
  • C:OGG>

  • 配置ODBC数据源

    [plain] view plain copy print ?
    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抽取进程

    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了。

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    项目描述:

    将SqlSever 2008 R2中的数据实时或定时的同步到Mysql 5.6数据库中。
      推荐文章
        热点阅读