APP下载

ORACLE流复制技术在数据库容灾备份上的应用

2012-03-27常玉慧

常熟理工学院学报 2012年10期
关键词:容灾日志备份

常玉慧

(江苏技术师范学院a.计算机工程学院;b.云计算与智能信息处理常州市重点实验室,江苏常州 213001)

ORACLE流复制技术在数据库容灾备份上的应用

常玉慧a,b

(江苏技术师范学院a.计算机工程学院;b.云计算与智能信息处理常州市重点实验室,江苏常州 213001)

通过与Data Guard技术的分析比较,总结了ORACLE流复制技术的优势.根据ORACLE流复制技术原理提出了一个数据库容灾备份方案,构建了一个完整的流复制项目,实验证明该方案是可行的.

流复制;容灾备份;数据库

容灾备份系统是指在相隔较远的异地,建立两套或多套功能相同的IT系统,利用地理上的分离来保证系统和数据对灾难性事件的抵御能力.容灾备份技术能够帮助企业在发生不可抗拒灾难之后,第一时间恢复企业的重要数据,以求达到业务连续性目的,使企业尽最大可能减少灾难下的损失.利用Oracle Stream复制数据的思想可达到这一目的,实现数据库的实时备份.

1 Oracle流复制技术概述

图1 流复制工作原理

1.1 Oracle流复制技术原理

Oracle Stream事实上是一种队列技术,它通过发布/订阅的方式来解决事件的管理,其基本原理就是收集事件并将它们保存在队列中,然后将这些事件发布给不同的预定者,流捕获Oracle数据库产生重做日志的事件,并将这些信息传递给其他的数据库,其他数据库通过应用这些日志,达到复制变化的作用.流复制技术原理如图1所示[1].

1.2 Data Guard和Stream的区别

目前,常用的备份方法有以下几种,Data Guard、高级复制、RealSync、Veritas、emc等.本文仅针对Oracle最常用的容灾备份技术Data Guard和Stream进行分析比较.

Data Guard通过冗余数据来提供数据保护,通过日志同步机制保证冗余数据和主数据之间的同步,这种同步可以是实时、延迟、同步、异步等多种形式,Data Guard常用于异地容灾和小企业的高可用性方案. Data Guard必须在同构平台数据库之间进行部署,这就要求用户主从数据库服务器是一样的平台,这对于中小企业来说比较苛刻,另外standby环境下的readonly模式虽然可以保障一段时间的只读访问,但不能保证开放7×24小时,还是需要间隙性留出一段时间进行数据的前滚操作.Stream是以Oracle Advanced Queue为基础实现的数据同步,提供了多种级别的灵活配置,并且Oracle提供了丰富的API等开发支持,Stream更适用在应用层面的数据共享.表1列举了Data Guard和Stream的主要区别.

表1 Stream技术和Data Guard技术的比较

综上所述,Stream将会是Oracle以后主推的一个技术热点,因为Stream具备以下的优点:

1)实现的技术框架较高级复制(advanced Replication)更先进,不是基于数据库级的触发器,而是采用对日志(Redo Log)的挖掘能力.

2)利用了比较少的数据库资源,这个特性在10 g支持DownStream后更明显.

3)远程备份,可实现Internet级的远程备份.

4)Stream的Capture具有Table/Rule/Database三种级别,扩展应用更广泛,甚至还可作为一个ETL的可选方案.

5)采用Table级的Stream时,在rule上可配置应用的DDL和DML,比起Data guard必须全库同步,有很大的优势.

2 流复制环境的搭建及测试[2-4]

2.1 前期规划

在使用流复制之前,需要大量有意义的规划和配置.首先要确定决定复制集,即要决定将哪些对象从源数据库复制到目标数据库;其次确定流复制站点,确定将它们复制到哪里;再决定是本地捕获还是下游捕获,确定是在源端从源数据库重做日志中捕获LCR,还是在目标数据库端执行下游捕获,若是下游捕获则从归档日志获得LCR,本地捕获可以保护更多的数据,但是会占用源数据库的资源;最后确定复制拓扑结构和目标数据库的角色,即确定复制数据库的用途,是不配置给任何用户使用,只是保持空闲,直到灾难发生,还是让复制数据库向业务打开,允许用户使用.

2.2 构建STANDBY备份数据库

1)修改主库的参数文件,并生成备库的初始化文件和密码文件.

2)备库目录并拷贝主库的数据.

3)为备库建控制文件.

4)配置listener.ora文件和tnsnames.ora文件.

5)启动数据库的监听进程.

注意:如果应用成功,此时standby已经处于mount状态了(而处于mount下面就不需要关闭数据库).

2.3 构建流复制数据库

1)为源和目标数据库配置初始化参数,主要关注init.ora文件的7个参数:COMPATIBILE、GLOB-AL_NAMES、JOB_QUEUE_PROCESSES、OPEN_LINKS、SHARED_POOL_SIZE、STREAMS_POOL_SIZ、UNDO_RETENTION.

2)将数据库设为归档日志模式.

3)创建Stream管理用户.

4)配置网络连接.

5)启用追加日志.如果在复制表上没有主键或者唯一的NOT NULL约束,就需要追加日志.

6)创建DBLINK针对主数据库建立的数据库链的名字必须和从数据库的global_name相同.

7)创建MASTER流队列,创建BACKUP流队列.

8)创建捕获进程.

9)实例化复制数据库.

10)创建传播进程,创建应用进程.

11)启动Stream.

3 测试及问题诊断

3.1 测试

本方案的第一阶段在两个数据库中准备流复制(按构建流复制数据库的步骤已完成),第二阶段设置行变更从主数据库传播到新的复制数据库,第三阶段设置流从复制数据库反向复制到主数据库,使之成为一个双向、多源的流环境.

1)建表测试

主库:

从库:

2)主库插入数据测试

主库:

从库:

3)反向数据同步测试

从库:

主库:

对tbp数据表进行反复双向的数据DML操作,检查主数据库和备份数据库两边数据是否同步.通过测试,该方案成功地配置了一个双向多源的流复制环境,主备份数据库保存了所有记录,数据已经实时同步.测试结果说明,使用Oracle流复制技术可以完成系统模型的数据同步要求.

3.2 问题诊断

如果在流复制的构建或测试过程中发现数据库有不同步的问题,可以从几下几点进行诊断.

1)诊断捕捉进程是否运行正常,执行如图2所示的语句.

2)诊断Captured LCR是否传播GAP,执行如图3所示的语句.

如果APPLIED_ SCN小于CAPTURED_SCN,则表示在主数据库一端,要么LCR没有被dequeue,要么Propagation进程尚未传播到从数据库一端.

3)诊断Appy进程是否运行正常,执行如图4所示的语句.

图2 主库确认捕捉进程是否运行正常

图3 主库确认LCR是否传播GAP图

图4 从库确认Appy进程是否运行正常

4 小结

通过以上的实验搭建和测试可以看出,Oracle Stream可以更好地提升数据库的可用性和安全性.流复制技术在分布式数据库环境中,凭借自身的事件管理系统的体系结构,提供了一个极强的引擎用于配置复制数据库,由于这种复制功能,就有了利用流复制作为灾难恢复和负载平衡的高可用性部件的可能[4].同时,流又存在很多可变的部分,DBA必须将流考虑为应用开发环境的一部分,譬如对数据类型的限制、带宽的问题,性能的考虑事项以及数据的重建等都要求成功地实现流技术.值得注意的是流的配置不是短期就可配置好的,它需要广泛的规划和大量的测试,不断完善流复制的自定义冲突解决机制,最终让流复制更健全,环境更稳定.

[1]曾腊容.Oracle流复制技术在电子商务数据库的应用研究[J].煤炭技术,2011(5):212-213.

[2]成雅,毛宇光.基于Oracle Streams的数据库实时备份技术研究[J].国际IT传媒品牌,2011(6):29-31.

[3]管东华.基于Oracle流复制技术的数据库容灾备份应用研究[D].成都:成都理工大学,2009.

[4]Matthew Hart,Scott Jesse.Oracle Database 10g高可用性实现方案——运用RAC、Flashback和Data Guard技术[M].北京:清华大学出版社,2005.

A Research on Database Backup and Disaster Recovery Based on Oracle Streams

CHANG Yu-huia,b
(a.College of Computer Engineering;b.Changzhou Key Laboratory of Cloud Computing&
Intelligent Information Processing,Jiangsu Teachers University of Technology,Changzhou 213001,China)

Compared with Data Guard technology,the ORACLE stream replication technology is much better.In this paper,ORACLE stream replication technology principle is introduced and the solution to the stream replication project is proposed and constructed for database backup and disaster recovery.Experimental results show that the proposed approach is feasible.

stream replication;disaster recovery;Database

TP311.13

A

1008-2794(2012)10-0108-04

2012-09-20

国家自然科学基金项目“面向XML数据集成的完整性约束挖掘方法研究”(61142007)

常玉慧(1971—),女,河南巩义人,讲师,研究方向:数据库技术,数据挖掘.

猜你喜欢

容灾日志备份
“备份”25年:邓清明圆梦
一名老党员的工作日志
扶贫日志
创建vSphere 备份任务
游学日志
关于建筑企业容灾备份系统方案的探讨
基于中兴软交换的电力通信网络容灾系统建设
旧瓶装新酒天宫二号从备份变实验室
基于数据容灾技术在企业信息系统中的应用研究
爱立信HDBSC容灾方案的研究