OGG是Oracle GoldenGate的简写,它支持在Oracle数据库和其他受支持的异构数据库之间复制数据。
当然Oracle GoldenGate属于Oracle公司,但之前,它可不属于Oracle。它之前叫GoldenGate软件公司,于1995年成立,由Eric Fish和Todd Davidson创立。这两老哥当时一拍脑门,就把这工具取名为“金门大桥”!和它的主要功能数据复制完全八竿子打不着,但所幸,他俩没叫它“金拱门”。
Eric Fish和Todd Davidson最初旨在为Tandem计算机公司设计一个容错系统,由于GoldenGate的健壮性和出色的数据复制功能,银行用它来把ATM网络的交易数据发送到IBM大型机,后来广泛地应用到金融行业及要求数据复制高效、健壮的各个行业。该公司于2009年9月被Oracle公司收购,在此之前Oracle和Golden Gate公司就有了长达超过10年的合作关系。在Oracle收购Golden Gate以后,与Oracle原有的 Data Guard互为补充,共同为企业提供跨平台实时数据同步的解决方案。
主要用途-数据迁移
OGG的标准用途是将数据从Oracle迁移到非Oracle数据库,或从非Oracle数据库迁移到Oracle数据库,支持的数据源有:
Oracle和非Oracle数据库,如MySQL,IBM DB2,MS SQL,Sybase等
文件,XML,JSON,CSV文件和其他非结构化数据源
基于大数据的数据库,如基于Apache Hive,Apache HDFS和Apache Hadoop等技术的大数据平台数据库。
Java消息传递服务(JMS)和Java API
支持的复制形式
1. Extract 进程
Extract 进程负责数据抽取工作。
Extract 可以配成如下两种模式:
(1)Initial Load:
在初始化装载过程中,Extract 进程直接从源对象中抽取当前的数据。
(2)Change synchronization:
为了保证源数据和其他对象保持数据的一致,extract 进程会捕获源对象自初始化同步以后的DML 和DDL 的变化。
如果接收到的是rollback,那么Extract 会清除该事务之前的所有记录。
如果接收到的是commit,Extract 会将之前存储的事务信息进行持久化,即将事务信息写入磁盘上的trail 文件,然后按队列传送到目标库。
2.Data Pump 进程
Data pump 进程是OGG 源库上的一个辅助Extract Group。