GoldenGate软件是一种基于日志的结构化数据复制软件。GoldenGate 能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。 

GoldenGate能够支持多种拓扑结构,包括一对一,一对多,多对一,层叠和双向复制等等


数据复制的拓扑结构有如下几种

   wKioL1X2orPgktQFAAGjiRdjeoI136.jpg

Goldegate的应用场景


  • A static extraction of data records from one database and the loading of those records

    to another database.

  • Continuous extraction and replication of transactional DML operations and DDL

    changes (for supported databases) to keep source and target data consistent.

  • Extraction from a database and replication to a file outside the database.


架构概览


Oracle Goldengate由以下组件组成

  • Extract

  • Data pump

  • Replicat

  • Trails or extract files

  • Checkpoints

  • Manager

  • Collector

wKioL1X2pqOxeya7AAER5169rw0662.gif

Extract 进程用来捕获数据源,有三种类型

  1. 配置为INITIAL LOAD模式时,数据源为表。

  2. 数据库的恢复日志(有的数据库也称为事务日志)。

  3. 第三方的捕获模型,通过调用Extact API将数据库变更的数据发送给Extract进程。

Data pump 是Extract的辅助可选组件,如果不配置Data pump,Extract将捕获的数据直接发给目标机器上的Collector进程。


使用Data pump能提供如下优点

  1. 防止网络或者目标端的Collector发生故障,保护数据丢失。

  2. data pump可以用来过虑,转换数据,或配置成Pass-through模式,即不做任何的动作,只是投递数据。

  3. 启动多个Data pump实现一对多的数据分发(或者是一张表的数据,根据数据类型发往不同的目的系统)

Replicat 运行在目的服务器上,从Trail文件中读取数据,重构DML、DDL语句,并应用到目的数据库上。你可以配置多个Replicat,并发的工作以提高系统的吞吐量。


Trail 为了支持持续的捕获、复制数据库的变更,Oracle将捕获来的数据库变更临时的记录到一系列的磁盘文件上。这些磁盘文件被称为Trail file。

一个Trail文件只能被一个Extract进行写。每个Extract进程必须链接到一个Trail文件上。


Checkpoints 当Goldengate的进程宕掉后,可以恢复Goldengate实例。

wKioL1X2wp_itMO5AAL1uHQvHkI145.jpg



Manager 是Goldengate的管理进程。

Extract和Replicat启动之前,必须先在每个节点上启动Manager进程。

Manager有如下功能

  • Start Oracle GoldenGate processes

  • Start dynamic processes

  • Maintain port numbers for processes

  • Perform trail management

  • Create event, error, and threshold reports


Collector ,接收远端系统传输的数据,并将其写到Trail文件中 。


group 概览

  为了区分系统中多个Extract或者Replicat进程,需要定义处理组

一个组包括如下内容

  • 一个进程,Extract 或者Replicat 

  • 它的参数文件

  • 它的checkpoint文件

  • 任何与这个进程相关联的其他文件。