海量智能GoldenGate数据复制软件
一、OracleGoldenGate技术原理
OracleGoldenGate软件是一种基于log(日志)的结构化数据复制软件,它通过解析源数据库在线log或归档log获得数据的增、删、改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。OracleGoldenGate软件可以在异构的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支持多种拓扑结构,为用户数据复制方案的灵活性、先进性奠定基础,如图所示:
OracleGoldenGate各种拓扑结构示意图
1.单向数据复制:由一个源数据库复制到一个目的数据库,一般用于高可用性和容灾,为生产机保持一个活动的备用数据库,从而在发生灾难的时候迅速切换,减少数据丢失和停机时间;
2.双向数据复制:利用OracleGoldenGate可以实现两个数据库之间数据的双向复制,任何一方的数据变化都会被传递到另一端,可以利用此模式开展双业务中心;
3.广播复制:由一个数据库向多个数据库复制,利用OracleGoldenGate的数据过滤功能可以实现数据的有选择分发;
4.集中复制:由多个数据库向一个数据库复制,可以将分布的、跨平台或异构的多个数据库集中到一个数据库。此种模式广泛应用于N+1模式的容灾,通过将多个系统数据库集中到一起,可以充分利用备份中心的设施,大幅减少投资;另外也用于跨平台多系统的数据集成,为这些提供系统提供一个统一视图便于查询和统计数据。
5.多层复制:由A数据库向B复制,同时又由B向C复制,可以在以上几种模式基础上无限制扩展。
由此可见,OracleGoldenGate的复制模式非常灵活,用户可以根据自己的需求选择特定的复制方式,并根据系统扩展对复制进行扩展
二、复制的可靠性
OracleGoldenGate可以提供可靠的数据复制,主要体现在下面三点:
*保证事务一致性
OracleGoldenGate在灾备数据库应用复制数据库交易的顺序与在生产中心数据库上的顺序相同,并且按照相同的事务环境提交,确保在目标系统上数据的完整性和读一致性,为实时查询和事务处理创造了条件。
*检查点机制保障数据无丢失
OracleGoldenGate的抽取和复制进程使用检查点机制记录完成复制的位置。对于抽取进程,其检查点记录当前已经抽取log的位置和写队列文件的位置;对于投递进程,其检查点记录当前读取队列文件的位置。检查点机制可以保证在系统、网络或OracleGoldenGate进程故障重启后数据无丢失。
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。