【OGG】OGG介绍
一、GoldenGate介绍
GoldenGate软件是一种基于日志的结构化数据复制软件。GoldenGate 能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。
GoldenGate能够支持多种拓扑结构,包括一对一,一对多,多对一,层叠和双向复制等等。
Oracle GoldenGate主要由如下组件组成
● Extract
● Data pump
● Trails
● Collector
● Replicat
● Manager
Oracle GoldenGate 数据复制过程如下:
利用抽取进程(Extract Process)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作,将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中。再利用传输进程将队列文件(trail file)通过TCP/IP传送到目标系统。
目标端有一个进程叫Server Collector,这个进程接受了从源端传输过来的数据变化信息,把信息缓存到GoldenGate 队列文件(trail file)当中,等待目标端的复制进程读取数据。
GoldenGate 复制进程(replicat process)从队列文件(trail file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。
Oracle GoldenGate(OGG)可以在多样化和复杂的 IT 架构中实现实时事务更改数据捕获、转换和发送;其中,数据处理与交换以事务为单位,并支持异构平台,例如:DB2,MSSQL等
Golden Gate 所支持的方案主要有两大类,用于不同的业务需求:
● 高可用和容灾解决方案
● 实时数据整合解决方案
其中,高可用和容灾解决方案 主要用于消除计划外和计划内停机时间,它包含以下三个子方案:
1. 容灾与应急备份
2. 消除计划内停机
3. 双业务中心(也称:双活)
实时数据整合解决方案 主要为 DSS 或 OLTP 数据库提供实时数据,实现数据集成和整合,它包含以下两个子方案:
1. 数据仓库实时供给
2. 实时报表
① 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 表
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战