什么是OGG

前因

每次开会听到大家说一些英文缩写的技术名词,都感觉好懵啊。但如果稍微加上25个字的解释,不仅很多业务部门人员可以立马听得懂,或像我这样的IT新人,也可以有机会搭上话了。

有一次陪领导和Cloudera的几个技术专家开会,交谈中,我们领导出口就是OGG、TD、Sharplex、GP,我立马蒙圈了!啊!什么是OGG???

所以我是下定决心,立下flag,一定要把这些东西都略知一二!!!

金门大桥

OGG是Oracle GoldenGate的简写,它支持在Oracle数据库和其他受支持的异构数据库之间复制数据。(刚好25个字)

当然Oracle GoldenGate属于Oracle公司,但之前,它可不属于Oracle。它之前叫GoldenGate软件公司,于1995年成立,由Eric Fish和Todd Davidson创立。这两老哥当时一拍脑门,就把这工具取名为“金门大桥”!和它的主要功能数据复制完全八竿子打不着,但所幸,他俩没叫它“金拱门”。

Eric Fish和Todd Davidson最初旨在为Tandem计算机公司设计一个容错系统,由于GoldenGate的健壮性和出色的数据复制功能,银行用它来把ATM网络的交易数据发送到IBM大型机,后来广泛地应用到金融行业及要求数据复制高效、健壮的各个行业。该公司于2009年9月被Oracle公司收购,在此之前Oracle和Golden Gate公司就有了长达超过10年的合作关系。在Oracle收购Golden Gate以后,与Oracle原有的 Data Guard互为补充,共同为企业提供跨平台实时数据同步的解决方案。

主要用途-数据迁移

OGG的标准用途是将数据从Oracle迁移到非Oracle数据库,或从非Oracle数据库迁移到Oracle数据库,支持的数据源有:

Oracle和非Oracle数据库,如MySQL,IBM DB2,MS SQL,Sybase等

文件,XML,JSON,CSV文件和其他非结构化数据源

基于大数据的数据库,如基于Apache Hive,Apache HDFS和Apache Hadoop等技术的大数据平台数据库。

Java消息传递服务(JMS)和Java API

支持的复制形式

整体架构

1. Extract 进程

Extract 进程负责数据抽取工作。

Extract 可以配成如下两种模式:

(1)Initial Load:

在初始化装载过程中,Extract 进程直接从源对象中抽取当前的数据。

(2)Change synchronization:

为了保证源数据和其他对象保持数据的一致,extract 进程会捕获源对象自初始化同步以后的DML 和DDL 的变化。

如果接收到的是rollback,那么Extract 会清除该事务之前的所有记录。

如果接收到的是commit,Extract 会将之前存储的事务信息进行持久化,即将事务信息写入磁盘上的trail 文件,然后按队列传送到目标库。

2.Data Pump 进程

Data pump 进程是OGG 源库上的一个辅助Extract Group。

3. Replicat 进程

Replicate 进程运行在目标系统上,该进程会读取目标端的trail中的文件,并将解析为DML 或者DDL 语句,然后在目标数据库执行。

Replicate可以配置成如下模式:

(1)Initial loads:

(2)Change synchronization

4. Trails 文件

为了支持连续的extraction 和 replication 数据的改变,OGG抓取这些改变的数据临时存放在一个序列化的磁盘文件里, 这个文件就叫trail。

Trail 文件可以放在源端或者目标端的系统里,甚至可以放到临时中转的系统上,这主要取决与GG 的配置,如果存放在local system上,就叫extract trail 或者 local trail,如果存放在remote system上就叫作remote trail。

创建和维护Trail 文件:

默认情况下,trails存放在GG 安装目录的dirdat 子目录下。

默认情况下,每个trails的文件是10M,为了保证进程的正常运行必须不断的创建的新的trail 文件。 这个过程由OGG 自动实现,并且不影响OGG的运行。

每个新生成的文件,文件名都会继承旧trail文件的前2个字母,然后加上6个数字,这样来进行唯一性约束。 数字从000000到999999。当数字到达999999时,又继续从000000开始。之前的trail 文件被覆盖。

Extract file 可以是一个文件,或者配置成多个文件。 配置成多个文件可以避免触及操作对单个文件最大大小的限制。

Extract file 和 trail 文件很类似,但是Extract file中不会存储checkpoints的信息。 Extract file 会在运行时自动创建。

5. Checkpoints 机制

Replicate都会checkpoint table 和 checkpoint file中记录事务的位置。我们也可以不使用checkpoint table。

6. Manager 进程

Manager 是Golden Gate的控制进程,Manager 必须在所有的Golden Gate端运行,并且要在Extract 或者 Replicat 进程启动之前运行。 在Extract 或者 Replicat进程运行期间,需要一直保证Manager进程的运行,这样才能管理相关的资源。

Manager 进程有如下功能:

(1)启动GoldenGate 进程

(2)启动其他相关的进程

(3)维护进程的端口

(4)管理trail 进程

(5)创建event,error和threshold 的报告。

7. Collector 进程

target的一个后台进程。

Collector 进程做如下工作:

(1) 将源端Extract 进程的请求发送到Manager进程,扫描并绑定可用的端口,并将端口信息返回给Manager 进程,然后分配给请求的的Extract 进程。

(2) Collector 进程会接收源库Extract 进程发送过来的改变的数据,并将数据写入target 系统的trail 文件中。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190121A1DGR100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券