点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
OGG简介
OGG是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化(数据量只有日志的四分之一左右),其能够实现大量交易数据的实时捕捉,变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟。
高可用容灾,数据库迁移、升级(支持跨版本、异构数据库、零宕机时间、亚秒级恢复)
实时数据集成(支持异构数据库、多源数据库)
工作原理图如下:

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等异构平台)。
传统模式:基于sql交付,最常用的一种方式。
Integrated模式(OGG12c)
读取源端传输过来的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那活儿”公众号





