Oracle GoldenGate 产品介绍
一、 OracleGoldenGate技术原理Oracle GoldenGate软件是一种基于log(日志)的结构化数据复制软件,它通过解析源数据库在线log或归档log获得数据的增、删、改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。Oracle GoldenGate 软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒级的实时复制,其复制过程简图如下:
file:///C:\Users\xiangbli\AppData\Local\Temp\OICE_E0AD0706-7737-478F-BA11-5ABF62D32F0C.0\msohtmlclip1\01\clip_image001.jpg 如上图所示,Oracle GoldenGate的数据复制过程如下:
Ø 利用捕捉进程(Capture Process)在源系统端读取Online Redo Log或Archive Log,然后进行解析,只提取其中数据的变化如增、删、改操作,并将相关信息转换为Oracle GoldenGate自定义的中间格式存放在队列文件中。再利用传送进程将队列文件通过TCP/IP传送到目标系统。捕捉进程在每次读完log中的数据变化并在数据传送到目标系统后,会写检查点,记录当前完成捕捉的log位置,检查点的存在可以使捕捉进程在中止并恢复后可从检查点位置继续复制;
Ø 目标系统接受数据变化并缓存到Oracle GoldenGate队列当中,队列为一系列临时存储数据变化的文件,等待投递进程读取数据。队列数据量一般只有log的四分之一左右;
Ø Oracle GoldenGate投递进程从队列中读取数据变化并创建对应的SQL语句,通过数据库的本地接口执行,提交到数据库成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。
由此可见,Oracle GoldenGate是一种基于软件的数据复制方式,它从数据库的log解析数据的变化。OracleGoldenGate将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达9:1的压缩率对数据进行压缩,可以大大降低带宽需求。在目标端,Oracle GoldenGate可以通过交易重组,分批加载等技术手段大大加快数据投递的速度和效率,降低目标系统的资源占用,可以在亚秒级实现大量数据的复制,并且目标端数据库是活动的。 OracleGoldenGate支持多种拓扑结构,为用户数据复制方案的灵活性、先进性奠定基础,如图所示:
file:///C:\Users\xiangbli\AppData\Local\Temp\OICE_E0AD0706-7737-478F-BA11-5ABF62D32F0C.0\msohtmlclip1\01\clip_image003.jpg Oracle GoldenGate各种拓扑结构示意图 1. 单向数据复制:由一个源数据库复制到一个目的数据库,一般用于高可用性和容灾,为生产机保持一个活动的备用数据库,从而在发生灾难的时候迅速切换,减少数据丢失和停机时间;
2. 双向数据复制:利用Oracle GoldenGate可以实现两个数据库之间数据的双向复制,任何一方的数据变化都会被传递到另一端,可以利用此模式开展双业务中心;
3. 广播复制:由一个数据库向多个数据库复制,利用Oracle GoldenGate的数据过滤功能可以实现数据的有选择分发;
4. 集中复制:由多个数据库向一个数据库复制,可以将分布的、跨平台或异构的多个数据库集中到一个数据库。此种模式广泛应用于N+1模式的容灾,通过将多个系统数据库集中到一起,可以充分利用备份中心的设施,大幅减少投资;另外也用于跨平台多系统的数据集成,为这些提供系统提供一个统一视图便于查询和统计数据。
5. 多层复制:由A数据库向B复制,同时又由B向C复制,可以在以上几种模式基础上无限制扩展。
由此可见,Oracle GoldenGate的复制模式非常灵活,用户可以根据自己的需求选择特定的复制方式,并根据系统扩展对复制进行扩展
二、 复制的可靠性Oracle GoldenGate 可以提供可靠的数据复制,主要体现在下面三点:
l 保证事务一致性
Oracle GoldenGate 在灾备数据库应用复制数据库交易的顺序与在生产中心数据库上的顺序相同,并且按照相同的事务环境提交,确保在目标系统上数据的完整性和读一致性,为实时查询和事务处理创造了条件。
l 检查点机制保障数据无丢失
Oracle GoldenGate的抽取和复制进程使用检查点机制记录完成复制的位置。对于抽取进程,其检查点记录当前已经抽取log的位置和写队列文件的位置;对于投递进程,其检查点记录当前读取队列文件的位置。检查点机制可以保证在系统、网络或Oracle GoldenGate进程故障重启后数据无丢失。
l 可靠的数据传输机制
Oracle GoldenGate 用应答机制传输交易数据,只有在得到确认消息后才认为数据传输完成,否则将自动重新传输数据,从而保证了抽取出的所有数据都能发送到备用端。数据传输过程中支持128位加密和数据压缩功能;
|