前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle GoldenGate 19 Microservices数据同步实战与故障处理

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

作者头像
徐靖
发布2020-08-05 15:42:54
1.7K0
发布2020-08-05 15:42:54
举报
文章被收录于专栏:DB说DB说

【概要】

由于公众号单篇文章的限制,上一篇文章只讲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进程.
  1. 点击extract右上角+号来新增extract
  1. 选择classic extact后点击next(支持初始化、经典模式、集成模式)
  1. 输入extract名称、同步类型以及配置认证
  1. 采用已创建的认证,微服务不支持直接输入账号与密码,需要采用别名方式

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

  1. extract创建完成,但是没有启动
  1. 通过Action中各种选项来查看、启动、修改、删除进程
  1. 启动进程之前开始附加日志(与经典架构一样)点击左上角三一图标中configuration配置
  1. 点击数据库图标(这个是配置数据源信息)开始配置
  1. 选择Schema或者Table级别附加信息类型后点击+号进入配置页面

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

  1. 可以配置extract自动启动、启动启动以及trailfile管理策略
  1. 使用sys用户登陆数据库来配置DDL经典架构下通过ggsci命令下使用dblogin登陆数据库,微服务架构在adminclient命令行先连接到Service Manager,然后才能使用dblogin访问数据库,DDL脚本路径:$ORACLE_HOME/lib/sql/legacy.
  2. 修改extract参数,增加ddl配置
  1. 启动extract进程--start无选项是同步方式,在后台是异步方式

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

【配置OGG的传输进程】

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

  1. 在service Manager首页点击Distribution Server的8002端口进入配置页面
  1. 点击➕号创建Distribution Server进程
  1. 配置Add path的信息创建和运行按钮(传统架构是extract name,现在是Path Name)
  1. Distribution Server进程被创建,被Receiver server的8003端口接收

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

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

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

  1. 在左侧Configuration中database增加checkpointtable
  1. checkpointtable已经创建成功.
  1. 通过web的Administration Server来配置replicat进程,点击Administration Server进程进入配置页面,点击+号
  1. 选择replicat类型,选择Nointegrated Replicat类型
  1. 配置replicate名字、checkpointtable等相关信息
  1. 检查与修改参数后(与ggsci配置类似),点击Create and Run.
  1. 创建完成后进程信息如下

【总结】至此完成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安装、配置以及数据同步实战到此结束。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 udapp 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档