通过Oracle GoldenGate实现灵活实时的数据推送
摘 要:在信息化建设的过程中,面对系统数据安全要求和应用需求同时要得到满足的情况,如何做到生产与应用两不误并减少对生产环境的影响是一个值得研究的问题。本文提出了用Oracle GoldenGate软件进行数据复制的思路,结合实际情况,阐述了此种软件应用的高效性和可靠性。
关键词:Oracle ;GoldenGate;数据复制
1.引言
目前,大型的企业、集团级的公司企业的IT部门的生产系统为保证生产的正常运营,一般对其他需要生产数据的系统仅以准实时方式提供数据,但在实时共享数据要求等方面又需要实时、准确的信息数据。这就需要在数据库层面引入先进而又适合的复制技术。
本文中所实施的系统就是此类情况,生产系统在支撑核心业务生产的同时,还要建立查询库,以确保生产系统顺畅运转的同时满足大并发量大数据量的统计查询需求。另外,为提升该查询库性能,还要在其上增加索引及数据项、数据表等。因此,建立查询库的过程有如下需求:一是要将生产库最新的、关键的数据的更新提供给查询库,以实现实时数据共享能力,同时对生产库增加的额外压力要尽量降至最低;二是生产库要提供核心业务的7*24 小时运转,尽量减少停机;三是为使数据应用有可扩展性,尽可能可以实现一对多的数据复制;四是尽可能支持异构数据库环境下的数据复制。
2.Oracle GoldenGate工作原理
GoldenGate软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志(Online Redo Log)或归档日志(Archive Log)获得数据的增删改变化,并将相关信息转换为GoldenGate TDM自定义的中间格式存放在队列文件中,再将这些变化通过TCP/IP网络传输并应用到目标数据库,在源数据库与目标数据库之间实现大量数据亚秒一级的实时复制,其复制过程简图如下:
图1 Oracle GoldenGate工作原理图
3.Oracle GoldenGate的优势比较
就oracle数据库而言,制定一个的低成本高效率的数据复制关系的解决方案,一般有三种方式,一是利用ORACLE数据库自身插件进行高级复制(Advanced Replication);二是从企业总线中的消息流中获取数据更新,也就是流复制(Streams Replication);三是利用dataguerd软件进行数据备库(需备库可以使用,一般采用逻辑复制方式);四是利用GoldenGate软件进行数据复制。
3.1 功能比较
四种复制方式的的基本性能比较见表1:
高级复制
流复制
Dataguerd(逻辑)
GoldenGate
基本原理
基于触发器(trigger)原理。
基于日志挖掘捕获原理。
基于从归档或在线日志中抽取数据变化的原理。
基于从在线日志中抽取数据变化并转换为自定义格式存放传送的原理。
系统整体性能
两端数据库是活动的,但只能源端有数据写入。
两端数据库是活动的,但只能源端有数据写入。
两端数据库是活动的,但不能两端都有数据写入。
两端数据库是活动的,可以实现两端数据的同时写入。
双向数据复制
不支持。
支持。
不支持。
支持。
异构数据库
不支持。
支持。
不支持,且源端和目标端操作系统必须相同。
支持。
资源占用
主机性能明显降低。
主机性能影响较小,对数据库性能也较为依赖。
主机性能有一定影响,数据性能下降。
对主机资源、I/O资源的占用非常小 ,几乎无影响。
带宽占用
带宽占用高。
带宽占用较高。
带宽占用高。
由于提供9:1的数据压缩特性,带宽占用低。
拓扑结构
一对一。
一对一。
一对多, standby数据库最多为9个。
支持一对一、一对多、多对一、双向复制等。
表1 GoldenGate优势比较表
3.2 其他优点
和其他复制方式相比,Oracle GoldenGate除了有以上优势外,在数据初始化装载工作中,GoldenGate还提供一种专门的数据迁移工具Initial Load,可以实现大部分数据的正确迁移,它既可以解决rman方式不能跨平台和版本的问题,也能解决datapump需要停机的问题,大大消除了系统复制移植过程中的停机时间。
4.实施过程及建议
结合本文需要建立查询库的“生产库额外压力尽量降低、尽量减少停机、尽可能可以实现一对多的数据复制、尽可能支持异构环境的”等要求,通过调研和测试,此次查询环境的建立选择了Oracle GoldenGate软件平台做为整个解决方案的核心,并进行实施。
4.1 实施过程
整个查询库建立的基本实施步骤为:
1)安装环境确认和准备。比如检查源数据库运行在归档模式下且归档路径、新建用于存放查询库的独立文件系统空间。
2)源系统Oracle GoldenGate的安装和配置。在源数据库安装软件、配置操作系统和GoldenGate的参数设置及环境变量。
3)目标系统Oracle GoldenGate的安装和配置。在目标数据库安装软件、配置操作系统和GoldenGate的参数设置及环境变量。
4)利用工具Initial Load进行初始数据的同步。
5)功能测试。验证GoldenGate可以复制所有的DML操作及大多数DDL操作、持大量事务的复制操作,同时目标数据库可以进行查询操作等。
4.2实施建议
一是对于数据库来说,需要在实施前规划好相应的网段、IP 地址、数据库实例名等资源。二是实施时要检查软件安装的前置条件,如磁盘方面建议1G以上;端口方面建议要专门的一个端口用于Manager和其他进程通讯;权限方面Unix系统建议为拥有Oracle实例的用户所在的组。三是建议所有参与复制的表都有主键或者唯一约束。四是为确保数据复制的实时性,在实施完成后,可通过数据库或应用程序对主备数据库两端的数据进行数据的核查,当生产数据库处在正常运行的过程中,数据的一般变化可在10秒以内进行同步,而大批量的变化同步基本可在3分钟内完成。
4.3关键点处理
在具体实施中,一些关键问题上的要具体分析并处理。
1)复制内容变更的处理 。当业务需求发生变化,比如,新增了信息输入,导致新增加了需要同步复制的数据表,或者由于原有业务的变化而去掉了一些复制表,这时,需要对 GoldenGate 的进程做一些调整。对于去掉的复制表,只要在 GoldenGate 的Replicat进程中,使用mapexclude参数把这些表名排除即可。对于新增的复制表,改动要大些。此时需要先把这些表从生产数据库导出,然后导入到查询数据库,接着再把相关的表名添加到GoldenGate的Extract、Data Pump以及Replicat进程,最后进行复制。
2) 网络中断的处理。由于专网可能出现网络闪断,例如,同步的数据还没有传递完,就由于网络的原因断了。当网络
恢复正常时,又需要重新传输,这样不利于尽快的同步复制。对此,在GoldenGate中,可以通过在生产数据库端配置数据泵(Data Pump)进程来克服网络中断的问题。当网络出现问题时,Extract进程可以把捕获到的数据变化存放在本地,在网络恢复正常后,由数据泵(Data Pump)进程把本地的数据变化传递到备用数据库上,由备用数据库端的Replicat进程进行读取并应用到灾备数据库上。
5.结语
总的来说,Oracle GoldenGate在实施中有生产库的额外压力最小化、数据复制多方式化、数据应用可扩展话等优势,在本文的实际应用中极大地满足了用户需求,它是Oracle目前提供的最佳数据复制技术,也为数据实时共享提供了实际应用案例。
参考文献:
赖万钦. Oracle 复制技术在分布式信息系统中的同步应用. 计算机时代 2007(3) :37-39.
作者简介:龚艳(1979.2-),女,上海市,工程师,硕士,研究方向:计算机软件应用