GoldenGate实践学习之《GoldenGate简介》

GoldenGate概述

    GoldenGate软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。GoldenGate软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制。

GoldenGate工作原理

  1. 利用抽取进程(Extract)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作-增、删、改操作,将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中;
  2. 利用推送进程(pump)将队列文件(trail file)通过TCP/IP传送到目标系统;
  3. 目标端利用收集进程(Collector)接收从源端传输过来的数据变化信息,把信息缓存到GoldenGate 队列文件(trail file)中;
  4. 目标端利用复制进程(replicat)从队列文件(trail file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。

GoldenGate应用场景

     ● 高可用和容灾解决方案

     ● 实时数据整合解决方案

     其中,高可用和容灾解决方案 主要用于消除计划外和计划内停机时间,它包含以下三个子方案:

    1.  容灾与应急备份

    2.  消除计划内停机

    3.  双业务中心(也称:双活)

     实时数据整合解决方案 主要为 DSS 或 OLTP 数据库提供实时数据,实现数据集成和整合,它包含以下两个子方案:

    1.  数据仓库实时供给

    2.  实时报表 

GoldenGate组成
  1. Manager(管理进程)
  2. Extract(抽取进程)
  3. Data pump(推送进程)
  4. Trails(队列文件)
  5. Collector(收集进程)
  6. Replicat(复制进程)

以下是对各种进程的详细说明:

  • Manager

    Manager进程是Golden Gate中进程的控制进程,用于管理 Extract(抽取进程),Data Pump(推送进程),Replicat(复制进程)等进程,在 Extract、Data Pump、Replicat 进程启动之前,Manager 进程必须先要在源端和目标端启动,在整个 Golden Gate 运行期间,它必须保持运行状态,其作用:

  1. 监控与启动 GoldenGate 的其它进程;
  2. 管理 trail 文件及 Reporting;

     注意:在 Windows 系统上,Manager 进程是作为一个服务来启动的,在 Unix 系统下是一个进程。

  • Extract 

    Extract 进程运行在数据库源端上,它是Golden Gate的捕获机制,可以配置Extract 进程来做如下工作:

  1. 初始数据装载:对于初始数据装载,Extract 进程直接从源对象中提取数据
  2. 同步变化捕获:保持源数据与其它数据集的同步。初始数据同步完成后,Extract 进程捕获源数据的变化;如DML变化、 DDL变化等

  • Replicat

    Replicat 进程是运行在目标端系统的一个进程,负责读取 Extract 进程提取到的数据(变更的事务或 DDL 变化)并应用到目标数据库,就像 Extract 进程一样,也可以配置 Replicat 进程来完成如下工作:

  1. 初始化数据装载:对于初始化数据装载,Replicat 进程应用数据到目标对象或者路由它们到一个高速的 Bulk-load 工具上;
  2. 数据同步,将 Extract 进程捕获到的提交了的事务应用到目标数据库中;

  • Collector

    Collector 是运行在目标端的一个后台进程,接收从 TCP/IP 网络传输过来的数据库变化,并写到 Trail 文件里;

  1. 动态 collector:由管理进程自动启动的 collector 叫做动态 collector,用户不能与动态 collector 交互;
  2. 静态 collector:可以配置成手工运行 collector,这个 collector 就称之为静态 collector;

  • Trails

    为了持续地提取与复制数据库变化,GoldenGate 将捕获到的数据变化临时存放在磁盘上的一系列文件中,这些文件就叫做 Trail 文件。

  1. 这些文件可以在 source DB 上也可以在目标 DB 上,也可以在中间系统上,这依赖于选择哪种配置情况;
  2. 在数据库源端上的叫做 Local Trail 或者 Extract Trail;
  3. 在目标端的叫做 Remote Trail;

  • Data Pumps

    Data Pump 是一个配置在源端的辅助的 Extract 机制,Data Pump 是一个可选组件,如果不配置 Data Pump,那么由 Extract 主进程将数据发送到目标端的 Remote Trail 文件中;如果配置了 Data Pump,会由 Data Pump将Extract 主进程写好的本地 Trail 文件通过网络发送到目标端的 Remote Trail 文件中。

    使用 Data Pump 的好处是:

  1. 如果目标端或者网络失败,源端的 Extract 进程不会意外终止
  2. 需要在不同的阶段实现数据的过滤或者转换
  3. 多个源数据库复制到数据中心
  4. 数据需要复制到多个目标数据库

你可能感兴趣的:(GoldenGate实践学习)