Fork me on GitHub

OGG的组件解析

Naruto

一、OGG的各个组件解析(Oracle GoldenGate)

1、Manager:

Manager进程是GoldenGate中进程的控制进程,用于管理Extract,Data Pump,Replicat等进程

在Extract,Data Pump,Replicat进程启动之前,Manager进程必须先要在

源端和目标端启动,在整个Golden Gate运行期间,它必须保持运行状态

  • 监控与启动Golden Gate的其他进程

  • 管理trail文件及Reporting

  • 在windows系统上,Manager进程是作为一个服务来启动的,在Unix系统下是一个进程

2、Extract

Extract进程运行在数据库源端上,他是Golden Gate的捕获机制,可以配置

Extract进程来做如下工作:

  • 初始数据装载:对于初始数据装载,Extract进程直接从源对象中提取数据

  • 同步变换捕获:保持源数据与其他数据集的同步,初始数据同事完成后

  • Extract进程捕获源数据的变换,比如DML变换(增删改),DDL变化(drop,create,alter)

3、Replicat

Replicat进程是运行在目标端系统的一个进程,负责读取Extract进程提取到的数据(变更的事务或者DDL变化)

然后应用到目标数据库

配置Replicat进程完成如下工作:

  • 初始化数据装载:对于初始化数据转载,Replicat进程应用数据到目标对象或者路由

它们一个高速的Bulk-load工具上

  • 数据同步,将Extract进程捕获到的提交了的事务应用到目标数据库中

4、Collector

Collector是一个运行在目标端的一个后台进程

接收从TCP/IP网路传输过来的数据变化,并写道Trail文件里

  • 动态Collector:由管理进程自动启动的collector叫做动态collector,用户不能

与动态collector交互

  • 静态Collector:可以配置成手工运行Collector,这个就是静态的

5、Trails

为了持续的提取与复制数据库变化,Golden Gate将捕获到的数据变化临时存放在磁盘上

的一系列文件中,这些文件叫做Trail 文件

这些文件可以在source DB上也可以在Target DB上,也可以在中间系统上,这依赖

于选择哪种配置情况

  • 在数据库源端上叫做Local Trail或者Extract Trail

  • 在目标端的叫做Remote Trail

6、Data Pumps

Data Pump是一个配置在源端的复制的Extract机制

Data Pump是一个可选组件,如果不配置Data Pump,那么由Extract主进程

将数据发送到目标端的Remote Trail中

如果配置了Data Pump,会由Data Pump将Extract主进程写好的本地Trail文件通过网络发送到

目标端的Remote Trail文件中

使用Data Pump的好处:

  • 如果目标端或者网络失败,源端的Extract进程不会意外终止

  • 需要在不同的阶段实现数据的过滤或者转换

  • 多个源数据复制到数据中心

  • 数据需要复制到多个目标数据库

7、ADG的解释

所谓的ADG,就是在备份库,应用redo log的同时,避免资源的浪费

OGG侧重于数据备份,ADG侧重于高可用

OGG可以异构,也就是不仅可以用在Oracle,ADG只有oracle可以用