暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

利用OGG实现Oracle数据库到MySQL数据库的单向同步

WorkLifeRecords 2021-06-24
1312

目录

环境介绍

安装软件

配置进程

测试数据同步

软件和OGG常用命令下载链接

环境介绍

源:Centos7.3+Oracle11.4

目标:Centos7.3+MySQL2

 

安装软件

1、MySQL数据库安装

略(mysql开启二进制日志、创建OGG用户和test数据库等操作可以一起做)

2、Oracle数据库安装

略(开启归档、开启附加日志创建OGG用户)

3、OGG软件安装

    #将OGG软件上传到Oracle数据库服务器
    #将软件进行解压。-C 后面是解压的目录,可以先行创建这个目录
    tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C ./ogg/
    #我这里的解压目录为/home/ogg
    cd /home/ogg
    ./ggsci
    复制

    完成上面的步骤如果出现如下所示的图证明OGG安装完成了

    创建OGG工作目录命令:create subdirs

    4、在MySQL服务器执行Oracle服务器同样的第三步操作

    配置进程

    1、源端

      #添加表附加日志,我这里添加过了。所以显示already enabled for table OGG.STUDENT

      GGSCI (oracle) 52> dblogin userid ogg,password ogg
      Successfully logged into database.

      GGSCI (oracle) 53> add trandata ogg.student

      Logging of supplemental redo log data is already enabled for table OGG.STUDENT.

      GGSCI (oracle) 54>
      #配置global

      GGSCI (oracle) 54> edit params ./GLOBAL
      #添加文件内容如下
      ggschema ogg
      #创建管理进程,并启动

      GGSCI (oracle) 56> edit param mgr
      #添加文件内容如下
      port 8006
      dynamicportlist 8006-8010
      autorestart er *, retries 5, waitminutes 3
      purgeoldextracts /home/ogg/dirdat/**,usecheckpoints,minkeepfiles 10
      LAGREPORTHOURS 5
      LAGINFOMINUTES 10
      LAGCRITICALMINUTES 15
      #启动
      GGSCI (oracle) 57> start mgr
      #查看状态
      GGSCI (oracle) 58> info all
      #可以看到状态为running
      #创建extract进程,并启动

      GGSCI (oracle) 59> edit params ext1
      #文件内容
      extract ext1
      setenv(NLS_LANG = "SIMPLIFIED CHINESE.AL32UTF8")
      userid ogg,password ogg
      exttrail ./dirdat/e1
      table ogg.student;
      #table后面的分号要注意

      GGSCI (oracle) 60> add extract ext1,tranlog,begin now
      GGSCI (oracle) 61> add exttrail ./dirdat/e1,extract ext1
      #查看
      GGSCI (oracle) 62> info all
      #此时可以看到有个EXTRACT(EXT1)stopped
      #启动
      GGSCI (oracle) 63> start ext1
      #创建pump进程,并启动

      GGSCI (oracle) 64> edit params push
      #文件内容
      extract push
      setenv(NLS_LANG = "SIMPLIFIED CHINESE.AL32UTF8")
      passthru
      userid ogg,password ogg
      rmthost 目标数据库服务器IP,mgrport 8006
      rmttrail /root/ogg/dirdat/e1
      table ogg.student;
      #exttrailsource /home/ogg/dirdat/e1 路径与ext1进程抽取到的数据路径一致
      GGSCI (oracle) 65> add extract push,exttrailsource /home/ogg/dirdat/e1
      #rmttrail /home/mysql/goldengate/dirdat/e1 路径与mysql端获取数据的路径一致
      GGSCI (oracle) 66> add rmttrail /root/ogg/dirdat/e1,extract push

      GGSCI (oracle) 67> info all
      #此时可以看到有个EXTRACT(PUSH)stopped
      #启动
      GGSCI (oracle) 68> start push
      #创建要同步的表的定义
      #创建参数文件
      GGSCI (oracle) 69> edit param test
      #文件内容
      defsfile ./dirdef/test.def
      userid ogg, password ogg
      table ogg.student;

      GGSCI (oracle) 70> exit
      #生成表定义文件
      ./defgen paramfile ./dirprm/test.prm
      #此时在目录dirdef生成文件test.def
      #传至目标库目录
      scp /home/oracle/ogg/dirdef/test.def root@目标数据库服务器IP:/root/ogg/dirdef/
      复制

      2、目标端

        #创建管理进程,并启动
        GGSCI (mysql) 2> edit param mgr

        #文件内容
        port 8006
        dynamicportlist 8006-8010
        autorestart er *, retries 5, waitminutes 3
        purgeoldextracts /root/ogg/dirdat/**,usecheckpoints,minkeepfiles 10
        LAGREPORTHOURS 5
        LAGINFOMINUTES 10
        LAGCRITICALMINUTES 15

        #启动
        GGSCI (mysql) 3> start mgr


        #配置global
        GGSCI (mysql) 4> edit params ./GLOBALS
        #文件内容
        ENABLEMONITORING

        GGSCI (mysql) 5> edit params ./globals
        #文件内容
        checkpointtable test.checkpoint_table

        #配置检查点
        #登录
        GGSCI (mysql) 6> dblogin sourcedb test@MySQL数据库IP:3306 userid ogg password Root!!2018
        #配置检查点
        GGSCI (mysql) 7> add checkpointtable test.checkpoint_table

        #查看检查点
        GGSCI (mysql) 8> info checkpointtable test.checkpoint_table

        #创建replicat进程并启动
        GGSCI (mysql) 9> edit params REP1

        #文件内容
        replicat rep1
        sourcedefs /root/ogg/dirdef/test.def
        TARGETDB test@MySQL数据库IP:3306,userid ogg,password Root!!2018
        reperror default,discard
        discardfile /root/ogg/dirrpt/rep1.dsc,append,megabytes 50
        allownoopupdates
        map ogg.student,target test.student;

        GGSCI (mysql) 10> add replicat rep1,exttrail /root/ogg/dirdat/e1,checkpointtable test.checkpoint_table

        #启动
        GGSCI (mysql) 11> start rep1
        复制

        测试数据同步

        在源端插入一条测试数据。我们观察源端的抽取进程和投递进程的工作状态如下图所示:

        此时我们观察目标端的复制进程的工作状态如下图所示:

        软件和OGG常用命令下载链接

        https://download.csdn.net/download/u011192409/11208923

        文章转载自WorkLifeRecords,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论