Oracle GoldenGate

Oracle GoldenGate 技术原理介绍

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

如上图所示,Oracle GoldenGate 的数据复制过程如下:

利用捕捉进程(Capture Process)在源系统端读取 Online Redo Log 或 Archive Log,然后进行解析,只提取其中数据的变化如增、删、改操作, 并将相关信息转换为 Oracle GoldenGate 自定义的中间格式存放在队列 文件中。再利用传送进程将队列文件通过 TCP/IP 传送到目标系统。捕 捉进程在每次读完 log 中的数据变化并在数据传送到目标系统后,会写 检查点,记录当前完成捕捉的 log 位置,检查点的存在可以使捕捉进程在中止并恢复后可从检查点位置继续复制;

目标系统接受数据变化并缓存到 Oracle GoldenGate 队列当中,队列为一系列临时存储数据变化的文件,等待投递进程读取数据。队列数据量一般只有 log 的四分之一左右;

Oracle GoldenGate 投递进程从队列中读取数据变化并创建对应的 SQL语句,通过数据库的本地接口执行,提交到数据库成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。

由此可见,Oracle GoldenGate 是一种基于软件的数据复制方式,它从数据 库的 log 解析数据的变化。Oracle GoldenGate 将数据变化转化为自己的格式, 直接通过 TCP/IP 网络传输,无需依赖于数据库自身的传递方式,而且可以通过 高达 9:1 的压缩率对数据进行压缩,可以大大降低带宽需求。在目标端,Oracle GoldenGate 可以通过交易重组,分批加载等技术手段大大加快数据投递的速度 和效率,降低目标系统的资源占用,可以在亚秒级实现大量数据的复制,并且目 标端数据库是活动的。

Oracle GoldenGate 支持多种拓扑结构,为用户数据复制方案的灵活性、先 进性奠定基础,如图所示:

Oracle GoldenGate 各种拓扑结构示意图

1.双向数据复制:利用OracleGoldenGate可以实现两个数据库之间数据 的双向复制,任何一方的数据变化都会被传递到另一端,可以利用此模 式开展双业务中心;

2.广播复制:由一个数据库向多个数据库复制,利用 Oracle GoldenGate的数据过滤功能可以实现数据的有选择分发;

3.广播复制:由一个数据库向多个数据库复制,利用 Oracle GoldenGate的数据过滤功能可以实现数据的有选择分发

4.集中复制:由多个数据库向一个数据库复制,可以将分布的、跨平台或 
异构的多个数据库集中到一个数据库。此种模式广泛应用于 N+1 模式 的容灾,通过将多个系统数据库集中到一起,可以充分利用备份中心的 
设施,大幅减少投资;另外也用于跨平台多系统的数据集成,为这些提供系统提供一个统一视图便于查询和统计数据。

5.多层复制:由 A 数据库向 B 复制,同时又由 B 向 C 复制,可以在以上几种模式基础上无限制扩展。
由此可见,Oracle GoldenGate 的复制模式非常灵活,用户可以根据自己的需求选择特定的复制方式,并根据系统扩展对复制进行扩展

复制的可靠性

Oracle GoldenGate 可以提供可靠的数据复制,主要体现在下面三点:

1.保证事务一致性
Oracle GoldenGate 在灾备数据库应用复制数据库交易的顺序与在生产中

心数据库上的顺序相同,并且按照相同的事务环境提交,确保在目标系统上数据 的完整性和读一致性,为实时查询和事务处理创造了条件。

2.检查点机制保障数据无丢失

Oracle GoldenGate 的抽取和复制进程使用检查点机制记录完成复制的位置。 对于抽取进程,其检查点记录当前已经抽取 log 的位置和写队列文件的位置;对 于投递进程,其检查点记录当前读取队列文件的位置。检查点机制可以保证在系 统、网络或 Oracle GoldenGate 进程故障重启后数据无丢失。

3.可靠的数据传输机制

OracleGoldenGate 用应答机制传输交易数据,只有在得到确认消息后才认 为数据传输完成,否则将自动重新传输数据,从而保证了抽取出的所有数据都能 发送到备用端。数据传输过程中支持 128 位加密和数据压缩功能; 

GoldenGate 支持操作系统和数据库类型

Oracle GoldenGate 可以在异构的 IT 基础结构之间实现大量数据的亚秒级 的数据捕捉、转换和投递。Oracle GoldenGate 支持几乎所有常用操作系统和数 据库平台,如下表所示:

操作系统 数据库

Windows 2000, 2003,XP 

Sun Solaris

HP-UX

IBM AIX

Linux
HP

TRU64
HP

OpenVMS
HP

NonStop
IBM z/OS

Capture(捕获) Delivery(投递)

Oracle

IBM DB2

MS SQL Server

Sybase ASE

Teradata

Enscribe

SQL/MP

SQL/MX

Oracle

IBM DB2

MS SQL Server

Sybase ASE

MySQL

Teradata

Enscribe

SQL/MP

SQL/MX
Ingres
HP

Neoview

任何ODBC兼容数据库