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

Oracle GoldenGate 19 Microservices数据同步实战与故障处理

DB说 2019-07-31
2423

【概要】  

       由于公众号单篇文章的限制,上一篇文章只讲OGG Microservices  for oracle数据库安装与配置,对于如何通过WEB端配置数据同步、如何通过命令行查看与管理服务、进程以及简单故障处理都没有讲解,所以本篇主要讲解如何通过WEB端来配置数据同步(与GGSCI命令行创建与管理抽取、传输以及应用进程类似)以及如何通过adminclient来直接查看与管理服务以及进程。

本文主要介绍OGG 19微服务架构安装、配置以及简单数据同步案例演示.

OS Version

Oracle Linux 7.5 X86-64

DB Version

Oracle 11.2.0.4  X86-64

RAC & ASM

2个节点的RAC,采用ASM作为数据库存储空间

 通过学习本篇文章,你将快速掌握如下内容:

  • 配置oracle数据库来满足OGG同步要求

  • 通过web端能够快速配置ogg的数据同步功能,包括创建与管理抽取进程、传输进程、应用进程以及验证数据同步

  • 通过adminclient命令行管理各种服务、进程,与ggsci命令相似

  • 通过web能够快速查看各种监控性能数据,如延迟数据、各种统计信息,使用传统ggsci命令查看,相对来说比较麻烦且不直观


   备注:如你对于安装与配置微服务还不熟悉,请通过上一篇文章来学习如何配置.


【检查与修改数据库配置FOR OGG】

  1. 数据库主要配置任务

    1.开启数据库归档--如果没有开启
    2.开启数据库级别附加日志--如果没有开始最小附加日志
    3.开启强制日志--如果没有开启强制日志
    4.设置ENABLE_GOLDENGATE_REPLICAT参数为TRUE
    5.创建OGG用户包括包括源端用户、目标端用户以及OGG抽取用户


    1. 检查数据库参数配置是否满足OGG需求

        备注:1,2,3项目都不满足,都需要调整.

      select name,supplemental_log_data_min , force_logging, log_mode from v$database;


      NAME SUPPLEME FOR LOG_MODE
      --------- -------- --- ------------
      XIAOXU NO NO NOARCHIVELOG



      1. 重启数据库到mount状态执行如下脚本

        shutdown immediate(单实例) or srvctl stop database -d xiaoxu(rac建议)
        startup mount
        alter system set log_archive_dest_1='location=+data';
        alter database archivelog;
        alter database add supplemental log data;
        alter database force logging;
        alter system set enable_goldengate_replication=TRUE;
        alter database open;


        1. 再次检查数据库参数配置是否满足OGG需求

          select name,supplemental_log_data_min , force_logging, log_mode from v$database;


          NAME SUPPLEME FOR LOG_MODE
          --------- -------- --- ------------
          XIAOXU YES YES ARCHIVELOG


          show parameter goldengate


          NAME TYPE VALUE
          ------------------------------------ ----------- ------------------------------
          enable_goldengate_replication boolean TRUE


          1. 创建OGG管理用户:ggadmin

            CREATE USER ggadmin identified by ggadmin;
            GRANT DBA to ggadmin;


            1. 创建业务用户分别是source和target用户

              Create user source identified by source;
              Grant connect, resource, create session, alter session to source;
              Grant unlimited tablespace to source;
              Create user target identified by target;
              Grant connect, resource, create session, alter session to target;
              Grant unlimited tablespace to target;


              【总结】至此完成oracle database配置以及用户创建,为后续OGG同步数据做准备.


              【配置OGG的经典抽取(classic extract)进程】

                 ⏰如果采用classic extract同步ddl,需要通过OGG_HOME的bin路径下adminclient来配置,WEB暂无接口,如果需要DDL同步建议采用集成模式

                      备注:1-11步通过web完成extract创建以及DML配置,12步通过adminclient来配置DDL

              1. 通过web的Administration Server来配置exact进程,点击Administration Server进程进入配置页面,Administration Server主要配置与管理extract和replicat进程.


              2. 点击extract右上角+号来新增extract


              3. 选择classic extact后点击next(支持初始化、经典模式、集成模式)


              4. 输入extract名称、同步类型以及配置认证


              5.  采用已创建的认证,微服务不支持直接输入账号与密码,需要采用别名方式

                备注:如果采用日志在asm上,增加tranlogoptions dblogreader参数


              6. extract创建完成,但是没有启动

              7. 通过Action中各种选项来查看、启动、修改、删除进程

              8. 启动进程之前开始附加日志(与经典架构一样)点击左上角三一图标中configuration配置


              9. 点击数据库图标(这个是配置数据源信息)开始配置


              10. 选择Schema或者Table级别附加信息类型后点击+号进入配置页面

                --备注:12.3版本名字是:Trandata,19版本变成Transaction information


              11. 可以配置extract自动启动、启动启动以及trailfile管理策略


              12. 使用sys用户登陆数据库来配置DDL

                经典架构下通过ggsci命令下使用dblogin登陆数据库,微服务架构在adminclient命令行先连接到Service Manager,然后才能使用dblogin访问数据库,DDL脚本路径:$ORACLE_HOME/lib/sql/legacy.

                  备注:goldengate的用户是ggadmin,所以需要输入用户名
                  都是ggadmin且ggadmin需要独立表空间,否则执行ddl_setup.sql会报错.
                  如果不是,以下是一个例子:
                  sqlplus '/as sysdba'
                  sql>create tablespace goldengate datafile '+data' size 500m autoextend off;
                  sql>alter user ggadmin default tablespace goldengate;
                  cd $ORACLE_HOME/lib/sql/legacy
                  【配置DDL】
                  sqlplus '/as sysdba'
                  @marker_setup.sql;
                  @ddl_setup.sql;
                  @role_setup.sql;
                  GRANT GGS_GGSUSER_ROLE TO ggadmin;
                  @ddl_enable.sql;
                  中途涉及这个Enter Oracle GoldenGate schema name:ggadmin
                  【禁用 DDL】
                  @ddl_disable.sql;


                  【卸载DDL】
                  @ddl_disable.sql;
                  @marker_remove.sql;
                  @ddl_remove.sql;
                • 修改extract参数,增加ddl配置


                • 启动extract进程--start无选项是同步方式,在后台是异步方式

                     【总结】至此完成oracle goldengate Microservices的classic extract的DML和DDL配置.


                【配置OGG的传输进程】

                     备注:微服务版本中传输进程用Distribution Server替换经典架构中PUMP进程

                1. 在service Manager首页点击Distribution Server的8002端口进入配置页面


                2. 点击➕号创建Distribution Server进程


                3. 配置Add path的信息创建和运行按钮(传统架构是extract name,现在是Path Name)


                4. Distribution Server进程被创建,被Receiver server的8003端口接收


                【总结】至此完成oracle goldengate Microservices的Distribution Server配置。


                【配置OGG的经典应用进程】

                       ⏰配置应用进程之前先配置checkpointtable表存放应用进程的消息,包括seqno、rba、time以及事务信息 .

                1. 在左侧Configuration中database增加checkpointtable

                2. checkpointtable已经创建成功.


                3. 通过web的Administration Server来配置replicat进程,点击Administration Server进程进入配置页面,点击+号


                4. 选择replicat类型,选择Nointegrated Replicat类型


                5. 配置replicate名字、checkpointtable等相关信息



                6. 检查与修改参数后(与ggsci配置类似),点击Create and Run.        


                7. 创建完成后进程信息如下

                    【总结】至此完成oracle goldengate Microservices的经典同步数据过程,包括extract、Distribution Server、replicat配置。


                【数据同步测试】

                1. 手动在source创建新表,验证能否自动同步DDL 

                  SQL> create table source.xiaoxu_new(id int not null primary key,name varchar2(50),address varchar2(100));


                  Table created.


                  1. 插入数据到source.xiaoxu

                    SQL> conn source
                    Enter password:
                    Connected.
                    SQL> insert into xiaoxu_new values(1,'xiaoxu','shanghai');


                    1 row created.


                    SQL> insert into xiaoxu_new values(2,'xiaoxing','shanghai');


                    1 row created.


                    SQL> insert into xiaoxu_new values(3,'xiaoyaba','shanghai');


                    1 row created.
                    SQL> commit;


                    Commit complete.
                    1. 在Service Manager页面点击Administration Server检查extract和replicat页面上Action中的Details来看统计信息或者Performance Metrics Server检查extract和replicat的database  statistics

                    •  extract总的统计信息

                    • extract详细信息

                    • replicat统计信息


                    • replicat详细信息


                    【总结】至此完成oracle goldengate Microservices的DDL+DML数据同步过程。


                    【通过adminclient命令行来管理】

                    经典架构下通过ggsci命令下使用dblogin登陆数据库以及各种管理操作,微服务架构在adminclient命令行先连接到Service Manager,然后才能使用dblogin访问数据库和各种管理操作.

                    1. 如何访问adminclient以及登陆数据库

                           ⏰进入OGG_HOME/bin目录,调用adminclient命令进入命令行模式,也是调用service manager的REST API接口来操作(类似登陆WEB).然后dblogin来访问数据库

                            具体命令(如果不先connect登陆,什么命令不好使)

                              cd $OGG_HOME/bin

                            ./adminclient

                          访问service manager api:connect http://192.168.124.97:7809 deployment deploymentname as oggadmin password oggadmin

                            登陆database:dblogin  useridalias ggadmin domain oggadmin

                         


                    2.adminclient与ggsci命令基本相同

                     ⏰如何创建、启动、删除,有些命令,web功能虽然好用,有些功能不支持,例如配置ddl、修改指定thread的scn、time、seqno、rba不支持





                      OGG (http://192.168.124.97:7809 deploy11g as ggadmin@XIAOXU) 5> info ext01




                      EXTRACT EXT01 Last Started 2019-07-30 23:01 Status RUNNING
                      Checkpoint Lag 00:00:03 (updated 00:00:09 ago)
                      Process ID 1529
                      Log Read Checkpoint Oracle Redo Logs
                      2019-07-31 00:14:38 Thread 1, Seqno 12, RBA 8719360
                      SCN 0.1157041 (1157041)
                      Log Read Checkpoint Oracle Redo Logs
                      2019-07-30 16:14:34 Thread 2, Seqno 5, RBA 8593408
                      SCN 0.1157040 (1157040)
                      Encryption Profile LocalWallet
                      No REPLICAT groups found, but some coordinated threads may have been excluded




                      OGG (http://192.168.124.97:7809 deploy11g as ggadmin@XIAOXU) 6> info rep
                      No EXTRACT groups found, but some coordinated threads may have been excluded




                      REPLICAT REP Last Started 2019-07-30 23:09 Status RUNNING
                      Checkpoint Lag 00:00:00 (updated 00:00:06 ago)
                      Process ID 13392
                      Log Read Checkpoint File u01/app/ogg/db11.2/ogg191_deploy/var/lib/data/rt000000000
                      2019-07-30 23:30:09.997803 RBA 4948
                      Settings Profile Default
                      Encryption Profile LocalWallet


                       [CLASSIC抽取无法抽取到数据以及问题排查】

                      1. 配置classic extract后无法捕获到DML变化情况

                           在Administration Server里面选择点击抽取进程的action的detail


                      --发现rac 2个节点信息,只发现一个无具体信息.有没有办法类似经典架构ggsci命令直接查看进程信息,现在名字叫adminclient


                      2.进入OGG_HOME/bin目录,调用adminclient命令进入命令行模式

                        OGG (not connected) 2> connect http://192.168.124.97:7809 deployment deploy11g as oggadmin  password oggadmin
                        OGG (http://192.168.124.97:7809 deploy11g) 3> info all
                        Program Status Group Type Lag at Chkpt Time Since Chkpt


                        ADMINSRVR RUNNING
                        DISTSRVR RUNNING
                        PMSRVR RUNNING
                        RECVSRVR RUNNING
                        EXTRACT RUNNING EXT01 CLASSIC 00:00:00 00:00:01
                        EXTRACT RUNNING EXT02 CLASSIC 00:00:03 00:00:03


                        1. 查看进程状态--发现thread 2的extseqno和extrba都是0,数据库切换日志、以及重启进程都无效果.

                          OGG (http://192.168.124.97:7809 deploy11g) 4> info EXT02
                          EXTRACT EXT02 Last Started 2019-07-30 11:29 Status RUNNING
                          Checkpoint Lag 00:00:02 (updated 00:00:07 ago)
                          Process ID 7058
                          Log Read Checkpoint Oracle Redo Logs
                          2019-07-30 11:45:12 Thread 1, Seqno 9, RBA 18807808
                          SCN 0.1054997 (1054997)
                          Log Read Checkpoint Oracle Redo Logs
                          2019-07-30 11:26:09 Thread 2, Seqno 0, RBA 0
                          SCN 0.0 (0)
                          Settings Profile Default
                          Encryption Profile LocalWallet
                          No REPLICAT groups found, but some coordinated threads may have been excluded


                          1. 手动修改thread 2 的extseqno=1、extrba=0的值,提示没有开启附加日志,最后发现2个节点时间不一致,导致使用begin now后一个节点可以识别,thread 2无法识别也无错误

                            OGG (http://192.168.124.97:7809 deploy11g) 6> alter extract ext02,extseqno 1,extrba 0,thread 2


                            OGG (http://192.168.124.97:7809 deploy11g) 7> start ext02
                            2019-07-30T03:51:11Z INFO OGG-00975 EXTRACT EXT02 starting
                            2019-07-30T03:51:11Z INFO OGG-15426 EXTRACT EXT02 started


                            OGG (http://192.168.124.97:7809 deploy11g) 11> info ext02


                            EXTRACT EXT02 Last Started 2019-07-30 11:51 Status RUNNING
                            Checkpoint Lag 00:05:02 (updated 00:00:10 ago)
                            Process ID 20190
                            Log Read Checkpoint Oracle Redo Logs
                            2019-07-30 11:46:05 Thread 1, Seqno 9, RBA 18834448
                            SCN 0.1055111 (1055111)
                            Log Read Checkpoint Oracle Redo Logs
                            2019-07-30 11:26:09 Thread 2, Seqno 1, RBA 0
                            SCN 0.0 (0)
                            Settings Profile Default
                            Encryption Profile LocalWallet
                            No REPLICAT groups found, but some coordinated threads may have been excluded


                            OGG (http://192.168.124.97:7809 deploy11g) 12> info ext02


                            EXTRACT EXT02 Last Started 2019-07-30 11:51 Status ABENDED
                            Checkpoint Lag 00:05:02 (updated 00:00:11 ago)
                            Log Read Checkpoint Oracle Redo Logs
                            2019-07-30 11:46:05 Thread 1, Seqno 9, RBA 18834448
                            SCN 0.1055111 (1055111)
                            Log Read Checkpoint Oracle Redo Logs
                            2019-07-30 11:26:09 Thread 2, Seqno 1, RBA 0
                            SCN 0.0 (0)
                            Settings Profile Default
                            Encryption Profile LocalWallet
                            No REPLICAT groups found, but some coordinated threads may have been excluded


                            错误日志如下--此时发现附加日志没有开启,其实已开启.对比2个节点时间不一致.
                            2019-07-30 11:51:17 ERROR OGG-00730 No minimum supplemental logging is enabled.


                            1. 手动修改thread 2 的extseqno 、extrba的值为当前值(类似节点2点begin now)后恢复

                              ⏰rac 2个节点需要保持一致,避免出现节点剔除集群或者sysdate取值等问题.最终修改2个节点时间。

                              OGG (http://192.168.124.97:7809 deploy11g) 43> alter extract ext02,extseqno 4,extrba 0,thread 2
                              OGG (http://192.168.124.97:7809 deploy11g) 43>start ext02
                              OGG (http://192.168.124.97:7809 deploy11g) 42> info ext02


                              EXTRACT EXT02 Last Started 2019-07-30 12:03 Status RUNNING
                              Checkpoint Lag 00:00:02 (updated 00:00:07 ago)
                              Process ID 23973
                              Log Read Checkpoint Oracle Redo Logs
                              2019-07-30 12:03:12 Thread 1, Seqno 9, RBA 21518336
                              SCN 0.1057982 (1057982)
                              Log Read Checkpoint Oracle Redo Logs
                              2019-07-30 04:03:11 Thread 2, Seqno 4, RBA 2557440
                              SCN 0.1057981 (1057981)
                              Settings Profile Default
                              Encryption Profile LocalWallet
                              No REPLICAT groups found, but some coordinated threads may have been excluded


                              OGG (http://192.168.124.97:7809 deploy11g) 43>


                              1. 通过web无法修改指定thread的extseqno和extrba的信息,可以修改sequence和rba,但是无法指定thread,修改的时会提示你必须指定thread

                                     


                              【总结】oracle goldengate 19 Microservices安装、配置以及数据同步实战到此结束。

                              最后修改时间:2020-11-25 18:10:13
                              文章转载自DB说,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                              评论