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

Oracle Golden Gate初识与部署

IT那活儿 2022-09-16
578

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!


OGG简介

OGG是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化(数据量只有日志的四分之一左右),其能够实现大量交易数据的实时捕捉,变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟。

主要应用场景有:
  • 高可用容灾,数据库迁移、升级(支持跨版本、异构数据库、零宕机时间、亚秒级恢复)

  • 实时数据集成(支持异构数据库、多源数据库)

工作原理图如下:

源端通过抽取进程提取redolog或archivelog日志内容,通过pump进程(TCP/IP协议)发送到目标端,最后目标端的rep进程接收日志、解析并应用到目标端,进而完成数据同步。

OGG相关进程介绍

GoldenGate主要包含Manager进程、Extract进程、Pump进程、Replicat进程。

2.1 Manager进程

无论是源端还是目标端有且只有一个Manager进程(主要用于启动、关闭、监控其他进程的健康状态,报告错误事件、分配数据存储空间,发布阀值报告等)

2.2 Extract进程

数据库源端进程,负责从源端数据表或日志中捕获数据,当事务提交时,所有和该事务相关的日志记录被以事务为单元顺序的记录到trail文件中。

Extract进程利用其内在的checkpoint机制,周期性的记录其读写的位置,实现断点同步。

Extract有两种捕获模式:

  • 传统模式

    抽取方式:基于在线日志或归档日志进行抽取。
  • Integrated模式(Oracle Goldengate11g版本)

    抽取方式:Logminingserver负责以LCR格式从数据库日志中捕获数据变化,extract进程再将这些数据存入trail文件。

2.3 Pump进程(可选)

运行在数据库源端,其作用是将源端产生的本地trail文件,把trail以数据块的形式通过TCP/IP协议发送到目标端(主要优点就是当目标端或者网络失败,源端的Extract进程不会意外终止),但是如果如果不使用trail文件,那么extract进程在抽取完数据以后,直接投递到目标端,生成远程trail文件,那么这时候,Pump进程就可以不用配置(存在)了。

2.4 Replicat进程

标端进程,负责读取源端传送到目标端的trail文件中的内容,并将其解析为DML或DDL语句,然后应用到第三方(数据库,kafka等异构平台)。

Replicat两种模式:
  • 传统模式:基于sql交付,最常用的一种方式

  • Integrated模式(OGG12c)

Replicat操作的过程如下:
  • 读取源端传输过来的trail 文件;执行data数据过滤和转换操作;

  • DML操作:根据commit顺序,构造LCR;DDL操作:Replicat进程直接apply;

  • Replicat通过lightweightstreaming 接口和目标库后台进程(Databaseinbound server)建立连接;

  • 将LCR传输到inboundserver,然后apply这些数据到目标数据库。

部署环境配置

3.1 源端数据库配置要求

配置归档:

altersystem set log_archive_dest_1 ='LOCATION=/data/arch' scope =spfile;

需要开启force log 和supplemental log。

alterdatabaseforce logging;

alterdatabaseaddSUPPLEMENTAL log data;

altersystem set enable_goldengate_replication=true scope=both;

altersystem switch logfile;

检查配置需如下:

selectNAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MINfromv$database;

3.2 如果要让GoldenGate支持DDL操作,还需要额外运行几个脚本,这些脚本是OGG带的,在GoldenGate的安装目录都可以找到,源端执行如下:

@marker_setup.sql

@ddl_setup.sql

@role_setup.sql

@ddl_enable.sql

#目标端&源端

创建OGG安装用户(可选,可以用Oracle用户)

useradd-u 1003 -g oinstall -G dbaogg

passwdogg

#源端

修改安装用户环境变量:

PATH=$PATH:$HOME/.local/bin:$HOME/bin

exportPATH

exportNLS_LANG=AMERICAN_AMERICA.ZHS16GBK

exportORACLE_BASE=/u01/app/oracle

exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

exportORACLE_SID=orcl

exportPATH=$PATH:HOME/bin:$ORACLE_HOME/bin


exportGGDATE=/data/ogg/ogg_install

exportLD_LIBRARY_PATH=$ORACLE_HOME/lib


source/home/ogg/.bash_profile



OGG软件安装

4.1 创建OGG安装目录

mkdir-p /data/ogg

chown-R ogg:oinstall /data/ogg

4.2 解压安装

unzip191004_fbo_ggs_Linux_x64_shiphome.zip -d data/ogg/

cd/data/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response

4.3 进入解压后的目录,修改配置文件中如下参数

4.4 执行静默安装

cd/data/ogg/fbo_ggs_Linux_x64_shiphome/Disk1

./runInstaller-silent -responseFile/data/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp

4.5 进入软件安装路径

./ggsci

源端OGG软件安装成功。

4.6 目标端大数据OGG软件安装

软件解压和安装同源端。


本文作者:江梦豪(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

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

评论