Golden Gate 所支持的方案主要有两大类,用于不同的业务需求:
● 高可用和容灾解决方案
● 实时数据整合解决方案
其中,高可用和容灾解决方案 主要用于消除计划外和计划内停机时间,它包含以下三个子方案:
1. 容灾与应急备份
2. 消除计划内停机
3. 双业务中心(也称:双活)
实时数据整合解决方案 主要为 DSS 或 OLTP 数据库提供实时数据,实现数据集成和整合,它包含以下两个子方案:
1. 数据仓库实时供给
2. 实时报表
灵活拓扑结构实现用户的灵活方案:
下图是一个典型的 Golden Gate 配置逻辑结构图:
① Manager
顾名思义、Manager进程是Golden Gate中进程的控制进程,用于管理 Extract,Data Pump,Replicat等进程
在 Extract、Data Pump、Replicat 进程启动之前,Manager 进程必须先要在源端和目标端启动
在整个 Golden Gate 运行期间,它必须保持运行状态
⒈ 监控与启动 GoldenGate 的其它进程
⒉ 管理 trail 文件及 Reporting
在 Windows 系统上,Manager 进程是作为一个服务来启动的,在 Unix 系统下是一个进程
② Extract
Extract 进程运行在数据库源端上,它是Golden Gate的捕获机制,可以配置Extract 进程来做如下工作:
⒈ 初始数据装载:对于初始数据装载,Extract 进程直接从源对象中提取数据
⒉ 同步变化捕获:保持源数据与其它数据集的同步。初始数据同步完成后,Extract 进程捕获源数据的变化;如DML变化、 DDL变化等
③ Replicat
Replicat 进程是运行在目标端系统的一个进程,负责读取 Extract 进程提取到的数据(变更的事务或 DDL 变化)并应用到目标数据库
就像 Extract 进程一样,也可以配置 Replicat 进程来完成如下工作:
⒈ 初始化数据装载:对于初始化数据装载,Replicat 进程应用数据到目标对象或者路由它们到一个高速的 Bulk-load 工具上
⒉ 数据同步,将 Extract 进程捕获到的提交了的事务应用到目标数据库中
④ Collector
Collector 是运行在目标端的一个后台进程
接收从 TCP/IP 网络传输过来的数据库变化,并写到 Trail 文件里
动态 collector:由管理进程自动启动的 collector 叫做动态 collector,用户不能与动态 collector 交互
静态 collector:可以配置成手工运行 collector,这个 collector 就称之为静态 collector
⑤ Trails
为了持续地提取与复制数据库变化,GoldenGate 将捕获到的数据变化临时存放在磁盘上的一系列文件中,这些文件就叫做 Trail 文件
这些文件可以在 source DB 上也可以在目标 DB 上,也可以在中间系统上,这依赖于选择哪种配置情况
在数据库源端上的叫做 Local Trail 或者 Extract Trail;在目标端的叫做 Remote Trail
⑥ Data Pumps
Data Pump 是一个配置在源端的辅助的 Extract 机制
Data Pump 是一个可选组件,如果不配置 Data Pump,那么由 Extract 主进程将数据发送到目标端的 Remote Trail 文件中
如果配置了 Data Pump,会由 Data Pump将Extract 主进程写好的本地 Trail 文件通过网络发送到目标端的 Remote Trail 文件中
使用 Data Pump 的好处是:
⒈ 如果目标端或者网络失败,源端的 Extract 进程不会意外终止
⒉ 需要在不同的阶段实现数据的过滤或者转换
⒊ 多个源数据库复制到数据中心
⒋ 数据需要复制到多个目标数据库
⑦ Data source
当处理事务的变更数据时,Extract 进程可以从数据库(Oracle, DB2, SQL Server, MySQL等)的事务日志中直接获取
或从 GoldenGate VAM中获取。通过 VAM,数据库厂商将提供所需的组件,用于 Extract 进程抽取数据的变更
⑧ Groups
为了区分一个系统上的多个 Extract 和 Replicat 进程,我们可以定义进程组
例如:要并行复制不同的数据集,我们可以创建两个 Replicat 组
一个进程组由一个进程组成(Extract 进程或者 Replicat 进程),一个相应的参数文件,一个 Checkpoint 文件,以及其它与之相关的文件
如果处理组中的进程是 Replicat 进程,那么处理组还要包含一个 Checkpoint 表