OGG基本框架及实现原理

 

OGG通过解析源数据库日志来获得数据的数据变化,再将这些变化应用到目标数据库。实现源数据库与目标数据库同步、双活。...





GoldenGate TDM:

GoldenGate TDM软件是一种基于日志的结构化数据复制软件。它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库。实现源数据库与目标数据库同步、双活。

GoldenGate TDM软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制。

GoldenGate TDM的原理:



生产库在生产过程中,会不间断的产生Redo日志或归档日志。产生新的日志会被GoldenGate的捕捉进程捕捉到其变化

捕捉进程:

也被称为Extract

GG捕捉进程(Capture Process)在源系统端读取Online Redo Log或Archive Log,并进行解析。

但是,它只提取其中数据的变化如增、删、改操作,并将相关信息转换为GoldenGate TDM自定义的中间格式存放在队列文件中。

初始化加载:

在进行的正式的捕捉之前,有一个初始化加载的过程,该过程用于使源数据库与目标数据库的数据完全一致。

通常情况下,源数据先运行,经过一段时间以后,才开始运行目标数据库。此时,必须先进行初始化加载的操作,使源数据库与目标数据库中的数据完全一致,只有经过这个过程以后,再在其上应用Redo,才能使两者的数据完全一致。

检查点:

捕捉进程在每次读完log中的数据变化并在数据传送到目标系统后,会写检查点,该检查点记录了当前完成捕捉的Log位置。

检查点的存在可以使捕捉进程在中止并恢复后可从检查点位置继续复制。

文件队列:

也被称为Trail

GoldenGate的文件队列用于暂存数据变化,对数据处理过程起到一个缓存的作用。

GG中一共有两个文件队列,分别位为源端及目标端。

源端文件队列:

该文件是GG捕捉到日志的数据变化后,按GG自定义的数据格式存储的文件。

该文件的数据量大约只有日志的四分之一左右,GG还可以通过高达9:1的压缩率对数据进行压缩,大大降低了文件的尺寸,还可以大大降低带宽需求。

目标端文件队列:

该文件队列中的文件是从源端文件队列,依靠投递进程传送过来的。

目标系统接受到数据变化文件,并将其缓存到GoldenGate TDM队列当中,然后等待投递进程读取数据。

投递进程:

GG投递进程用于将文件队列的文件按照一定的网络结构,通过TCP/IP协议传送到目标系统。

通过该进程,实现了与源数据库的完全分离,使数据库在发生宕机等严重灾乱时,仍然可以正常工作,保证了数据传输的独立性。

投递进程可以分为两类:即源端投递进程、目标端投递进程

源端投递进程:

该进程位为源数据库端,用于将源端产生的文件队列投递到目标端。

TDM采用应答机制传输交易数据,只有在得到确认消息后才认为数据传输完成,否则将自动重新传输数据。

目标端投递进程:

投递进程从目标端队列中读取数据变化,并创建对应的SQL语句。

然后通过数据库的本地接口执行该SQL语句,提交到数据库成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。

为了提高投递的效率,GG通过交易重组,分批加载等技术手段大大加快数据投递的速度和效率,降低目标系统的资源占用。

在数据投递的同时,并且目标端数据库是活动的,并可以在亚秒级实现大量数据的复制。

网络结构:

GG提供了灵活的应用方案,基于其先进、灵活的技术架构可以根据用户需求组成各种拓扑结构。

一对一:

从源端向目标端同步数据,源端和目标端数据库均为一个。

主要用于备份生产数据,同时给外界提供查询功能。

一对多:

从源端向目标端同步数据,源端数据库为一个,目标端数据库为多个。

主要用于广播复制,将数据从一个点复制到多个点。

多对一:

从源端向目标端同步数据,源端数据库为多个,目标端数据库为一个。

主要用于数据集中,构建数据仓库,实现N+1灾备。

双向复制:

既可以从源端向目标端同步数据,也可以从目标端向源端同步数据。

主要用于灾备,实现双业务中心。

多个双向复制:

既可以从源端向目标端同步数据,也可以从目标端向源端同步数据,同时这个双向复制数据库对有多个。

主要用于灾备,实现多个业务中心。

分层结构:

从源端向目标端同步数据,目标端在对数据进行一定的处理之后,再通过GG把数据同步下一层的目标端。

主要用于多级复制,实现层次化的企业数据。


    关注 我是DBA社区


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册

数据库同步 相关文章