Oracle GoldenGate(简称OGG)是一种基于日志的结构化数据复制软件,它通过捕捉源数据库的在线重做日志(Online Redo Log)或归档日志(Archive Log),然后将这些日志传输到目标数据库,最后在目标数据库上应用这些日志,从而实现源端与目标端的数据同步。
工作原理
- 数据捕获:通过在源数据库上安装GoldenGate进程来监视事务日志,并记录数据变更操作(如插入、更新和删除等)。
- 数据传输:将捕获到的数据变更记录通过TCP/IP网络传输到目标数据库。
- 数据转换:在目标数据库上,将接收到的数据变更记录转换成目标数据库可以理解的格式,并应用到目标数据库中。
主要组件
- Extract:在源端数据库上运行,负责从源端数据表或日志中捕获数据。
- Data Pump:可选组件,负责将源端的本地trail文件通过网络发送到目标端。
- Replicat:在目标端数据库上运行,负责读取源端传送到目标端的trail文件中的内容,并将其解析为DML或DDL语句,然后应用到目标数据库。
数据复制过程
- 初始化数据加载:Extract进程直接从源端的数据表中抽取数据。
- 实时增量捕获:Extract进程捕获源端数据库的实时增量变化(DML和DDL)。
- 数据传输:通过Data Pump进程将源端产生的本地trail文件通过网络发送到目标端。
- 数据应用:Replicat进程读取目标端trail文件中的内容,并将其解析为DML或DDL语句,然后应用到目标数据库。
通过这种方式,Oracle GoldenGate能够实现源数据库与目标数据库之间的实时数据同步,适用于数据备份、数据迁移、数据集成等多种场景。