[硕士论文]基于Oracle流复制技术的数据库容灾备份应用研_第1页
[硕士论文]基于Oracle流复制技术的数据库容灾备份应用研_第2页
[硕士论文]基于Oracle流复制技术的数据库容灾备份应用研_第3页
[硕士论文]基于Oracle流复制技术的数据库容灾备份应用研_第4页
[硕士论文]基于Oracle流复制技术的数据库容灾备份应用研_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成都理工大学硕士学位论文基于Oracle流复制技术的数据库容灾备份应用研究姓名:管东华申请学位级别:硕士专业:计算机软件与理论指导教师:周家纪20090501摘要基于Oracle流复制技术的数据库容灾备份应用研究作者简介:管东华,女,1982年6月生,师从成都理工大学周家纪教授, 2009年06月毕业于成都理工大学计算机软件与理论专业,获得工学硕士学位。摘要容灾备份是通过在异地建立和维护一个备份存储系统,利用地理上的分离来保证系统和数据对灾难性事件的抵御能力。容灾系统即在异地建立一套完整的、与本地数据系统相当的备份应用系统,当出现灾难时,远程应用系统将迅速接管或承担本地应用系统的业务运行而保证

2、业务的连续性。在容灾系统中,数据存储的重要性不言而喻。数据是企业宝贵的资源,尤其在电子商务大型系统中。要考虑支持几千或上万用户同时存取和7*24小时不间断运行的要求,如何保证业务连续性运营及数据的可靠性是一个重要的课题。Oracle数据库以其强大的数据处理能力,在各行各业得到了广泛的应用,研究Oracle数据库容灾备份技术具有重要的现实意义。Oracle Sreams流复制技术是一种数据库复制技术。利用数据流可实现数据库之间或数据库内部的数据和事件的共享。Oracle Streams是提高数据库可用性,构建灾难备份系统以及实现数据库分布的理想的技术解决方案。本文详细介绍了Oracle流复制技术

3、在数据库系统灾难备份中的建设实施过程。通过研究数据库容灾备份的相关原理技术,对各种数据库容灾备份技术分析对比,及Oracle容灾备份技术的深入剖析,选择流复制技术对电子商务数据库系统进行了灾备数据同步的应用实现。研究如何利用Oracel流复制这一新的技术在数据库数据共享中的应用,以及一个完整的流复制项目过程,涵盖了基于Oracle 流复制技术的数据库容灾备份的各个方面,又不失其一般性,对其它的数据库容灾备份工程也有很好的参考价值。最后,本文介绍了数据库容灾备份、流复制技术的发展方向。关键词:容灾备份流复制Oracle 同步复制成都理工大学硕士学位论文Research and Implement

4、ation of Database Backupand Disaster Recovery Based on Oracle StreamsIntroduction of the author: Guan Donghua,female,was born in June,1982 whose tutor was Professor Zhou Jiaji . She graduated from Chengdu University of Technology in Computer Software and Theory major and was granted the Master Degre

5、e in June,2008.AbstractDisaster recovery is a fail over system related to preparing for recovery or continuation of technology infrastructure after a natural or human-induced disaster. Disaster recovery system consist of several at least two physically separated database. Each database server must h

6、ave an own unique network address. The controlling instance of the fail over system is used to detect the fail over situation and perform the operations needed to redirect client connections, and remote application system will quickly take over to ensure service continuity. Research on disaster reco

7、very based on Oracle database has an important practical significance.Data storage is very important in the database disaster recovery system. Data is valuable resource ,especially in the E-commerce bussiness system. That request 7*24 hours servers uninterrupted. Oracle Streams is the a new feature

8、for data synchronous replication. It is a database technology solutions for enhancing database avalibility, building a backup and disaster recovery system as well as database distribution.The thesis introduced the application of Oracle Streams replication in database backup and disaster recovery . B

9、esides the explaination for the definition of database backup and disaster recovery, and analysis of differences between some classical database backup methods, the Oracle Streams replication is chosen for E-commerce database disaster recovery. Reserch how to use this new feature on datas sharing, a

10、nd how to set up a complete Streams replication. For example:how to construct Streams replication entironment,how to resolve the changed Streams replication item,and construct the high available entironment,etc. This thesis can be a good reference to other projects. Finally,this thesis introduced wh

11、at we will do in the future on database backup and disaster recovery .Keywords: disaster recovery and backup Streams Oracle Synchronous replication独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得成都理工大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的人员对本研究所做的任何贡献均已在论文中作了明确的

12、说明并表示谢意。学位论文作者签名:年月日学位论文版权使用授权书本学位论文作者完全了解成都理工大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权成都理工大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。(保密的学位论文在解密后适用本授权书学位论文作者签名:学位论文作者导师签名:年月日第1章引言第1章引言1.1 项目背景及研究意义随着计算机的广泛应用,数据存储的重要性不言而喻。数据是企业宝贵的资源,尤其在电子商务大型系统中,要考虑支持几千或上万用户同时存取和7*24小时

13、不间断运行的要求,如何保证业务连续性运营及数据的可靠性是一个重要的课题。日益激烈的市场竞争和不断提高的客户服务质量需求对数据库能力和可靠运行的要求越来越高,从面向客户服务的角度而言,无论何时出现何种情况,都需要数据库提供不间断的业务支撑服务,以保证客户满意度、客户服务质量、企业信誉等不受影响,对企业而言也可避免财务损失,增强企业竞争力。与此同时系统故障、人为误操作、传输中断、电网停电、服务器崩溃、磁盘损害系统风险甚至数据中心的灾难性丢失都可能造成数据库文件的损害或丢失。我们该如何保护数据资源?用什么办法措施来保护数据?如何才能高性能、高可靠性的保护数据?因此数据库容灾备份系统的建设至关重要。O

14、racle数据库以其强大的数据处理能力,从众多数据库系统中脱颖而出,在各行各业得到了广泛的应用,研究Oracle数据库容灾备份技术具有重要的现实意义。电子商务是为个人和企业销售商品和提供服务的在线交易市场。互联网服务的全球性决定了其每天24小时都会有用户访问,因此任何服务的停止都会对用户造成影响。而对于电子商务的应用,暂时的服务中止则意味着客户的永久失去及巨大的经济损失。例如全球最大的在线交易市场eB在1999年6月发生了一次22小时的网站不可访问,对此网站的380万用户的忠诚度造成巨大影响,使得ebay 公司不得不支付了近500万美元用于补偿客户的损失,而该公司的市值同期下降了40亿美元。面

15、对系统数据安全要求和应用需求同时要得到满足的情况,如何做到容灾与应用两不误,如何在可以容忍的时间内恢复业务支撑系统的正常运行,如何将企业因业务中断而导致的损失降低到预定的程度是一个值得研究的问题。因此,数据库容灾及备份系统的建设至关重要。容灾备份不仅仅是指将数据库备份文件从一个房间备份到另一个房间,更重要的是基于网络的远程备份,以及发生灾难后如何能够迅速恢复数据库,使得相关业务访问能够平滑不间断地过渡到恢复后的数据库中。Oracle作为优秀的大型数据库管理系统,已经得到了越来越广泛的应用。Oracle提供了export、import、recover等命令,可以让数据库管理员根据需要采用热备份、

16、冷备份等多种方式备份当前数据库数据,必要时再进行恢复。但这些传统的备份方案都存在下列一个或多个不足:* 基于人工方式,难以自动完成;* 实时性差,备份数据库无法获得最新的更新数据;* 每次都是对数据库当前数据的全部备份,备份数据量大,对时间、系统资源和网络状况具有较高的要求;* 对数据库正常访问有较大影响;* 容错性差,当网络等出现故障时需要重新备份;* 恢复数据需要较长时间。因此,设计一种可以自动完成的、实时性好、网络负载小、安全性高、不影响现行业务的数据库容灾灾备方案,具有重要的理论和实际意义。251.2 容灾备份的相关理论232425容灾备份是通过在异地建立和维护一个备份存储系统,利用地

17、理上的分离来保证系统和数据对灾难性事件的抵御能力。根据容灾系统对灾难的抵抗程度,可分为数据容灾和应用容灾。数据容灾是指建立一个异地的数据系统,该系统能对本地系统关键应用数据实时复制,当出现灾难时,可由异地系统迅速接替本地系统而保证业务的连续性。应用容灾比数据容灾层次更高,即在异地建立一套完整的、与本地数据系统相当的备份应用系统(可以同本地应用系统互为备份也可与本地应用系统共同工作,在灾难出现后,远程应用系统将迅速接管或承担本地应用系统的业务运行。它将企业因灾难造成的损失降低到最小程度。由于电子商务数据库的特性,本文数据库环境的建立的是一套应用容灾系统,即一套异地完整的、与本地数据系统相当的备份

18、应用系统。2324一般说来,典型的远程容灾系统需要在相隔较远的异地,建立2套或多套功能相同的IT 系统,互相之间可以进行健康状态监视和功能切换。这样的2(多套系统可以称为主数据中心和备份数据中心。主数据中心采用高可靠性集群解决方案设计,备份数据中心与主数据中心通过高效网络相连接。数据存储在主数据中心存储磁盘阵列中。同时,在异地备份数据中心配置相同结构的存储磁盘阵列和一台或多台备份服务器。通过专用的灾难恢复软件可以自动实现主数据中心存储数据与备份数据中心数据的实时完全备份。其体系架构如下面图1-1所示。典型的容灾系统一般包括2个主要的功能部分:数据复制和应用切换。数据复制是指在异地之间保证各个系

19、统关键数据和状态参数的一致,其实现可以是成本较低的软件方式,也可以是效率较高的硬件方式;应用切换是指当某个具体应用在一个系统中失效之后,可以在另外一个系统中自动启动并接管该网络服务,这要求系统必须配置有相应的软件。在实际的容灾系统中,数据复制过程的工作机制也不尽相同。概括地讲,数据复制的工作机制主要包括同步和异步2种,其区别主要在于主系统内主机与存储设备间的I/O 处理是否与数据复制过程相关。232425 图1-1 容灾系统一般体系架构1.3 数据库容灾备份国内外研究现状1722目前,常用的备份方法有一下几种,下文就数据库容灾备份的多种技术分析比较。高级复制的机制,适用于联机事务处理的应用。对

20、于事务类型是小而多的情况,高级复制会有很好的性能表现,但是对于批量事务处理将会是高级队列的致命约束。高级队列通常可以在异构平台之间的Oracle数据库间进行分布式部署,比如UNIX服务器和PC SERVER之前,这样的好处就是减少了硬件资源上的投资。但是高级复制本身的机制约束了应用的可扩展性,deffer queue的维护需要大量的系统资源,同时基于触发器本身也会花费很大的资源。这样通常会造成部署高级复制的应用系统上最先五个的等待通常都是enqueue或者dequeue等大量高级复制上的维护,同时突发的大事务会导致系统处理不及时而挂起。另外高级复制对于DML的支持只能通过对应的接口来实现,这样

21、会增加更多维护难度。RealSync:DSG公司的一款高端可用性产品,利用自身的机制来读取archive log中的数据并通过queue来传递到远程站点,机理类似于logical standby。由于本身的成熟度比较高,通常应用于大型的数据同步场合,比如电信,电子网站,银行等。维护配置稍简单,但是成本非常高。veritas,emc等产品是基于软件和硬件层的数据传递,可以做到完全抛开数据库级的做到更为底层的一致性的数据传输。通常效率也会很高,价格比较昂贵。Data guard:是standby在9i中的扩展,9i中改名为data guard,利用standby controlfile、一份初始的

22、物理备份和持续的归档日志进行前滚。在业内已经有很好的口碑和广泛的应用。技术成熟度较高。可以作为一般的灾备手段。当发生因错误、故障,甚至灾难所导致的生产数据库停机或崩溃后把备用DataGuard数据库切换到生产角色,从而实现数据库系统在短时间内恢复服务并防止或减少数据的丢失。通过DataGuard技术,生产数据库与备用数据库可进行计划性的互换,在不中断业务正常运作的情况下,能实现对数据库系统的脱机维护。但是作为某些有特殊要求的用户来说,Data guard还是有着一定的局限性。首先,必须是同构平台和数据库之间进行部署,这就要求可能需要用户投入和主数据库服务器类似的预算,而这种要求对于中小型用户来

23、说是比较苛刻的。另外standby的环境不能保证7×24小时的open,虽然readonly的模式可以保障一段时间的只读访问,但是还是需要间歇性流出一段时间进行数据的前滚操作。综合评估:综合以上几种数据库可用性的方法,我们发现,几乎没有哪种现有方案可以完全做到以下几点:1成本低,2支持异构平台,3环境中的节点可以同时open对外服务,4能做到整个schema级的同步而且相关的维护不是过于复杂,5系统本身不会过多的限制应用的可扩展性。于是,Oracle推出了Streams技术。Oracle Streams是提高数据库可用性,构建灾难备份系统以及实现数据库分布的理想的技术解决方案。Ora

24、cle Streams技术在实际的应用中有许多的成功的例子。1.4 本课题主要研究的内容数据库容灾备份研究通过研究数据库容灾备份的相关原理技术,对各种数据库灾备技术进行分析、对比。对项目的系统环境数据库的进行了详细的分析、设计,指出环境中如何利用流复制建立容灾备份系统。Oracle流复制技术主要就Oracle流复制技术进行了讨论,以及流复制技术中的捕获,传播/应用,冲突等进行了重点论述。Oracle流复制应用实现验证主要模拟一对主备数据库的情况,使用Oracle流技术进行复制实验,验证流复制数据同步复制的能力。通过测试说明使用流复制的数据复制技术可以完成系统系统模型的数据同步要求。流复制环境的

25、建立对流复制在电子商务数据库系统中的使用进行了探索,提出了流复制与standby技术相结合的模型和使数据库数据读写分开从而缓解网络压力的应用。最后,指出项目数据库环境中如何利用流复制建立容灾备份系统和使用作业监控维护该系统。本文结构安排如下:第1章为引言,介绍论文的项目背景和研究意义,容灾备份相关理论和国内外研究现状,论文的主要研究成果和论文的结构;第2章为Oracle流复制技术概述,对Oracle流复制技术进行了研究;第3章为项目数据库环境介绍和对容灾备份技术的需求分析、设计;第4章为Oracle流复制实验,测试流复制技术的可行性;第5章为数据库流复制环境的建立,主要就建立过程中的一些关键点

26、进行阐述;第6章为流复制在电子商务数据库的应用在结论部分,介绍了研究成果,总结了论文特色,分析了研究的不足,日后还需要继续研究使其日趋完善。第2章Oracle流复制技术192.1 流复制概要Oracle Sreams流复制技术是一种数据库复制技术。利用数据流可实现数据库之间或数据库内部的数据和事件的共享。Oracle Streams是提高数据库可用性,构建灾难备份系统以及实现数据库分布的理想的技术解决方案。利用数据流(Data Streams,可实现数据库之间或数据库内部的数据和事件的共享。使用Oracle Streams技术,数据库管理员可定义哪些数据或事件需要被捕捉,并可通过配置参数控制数

27、据流如何把有关信息传递、路由至目的数据库。Oracle Streams 能自动捕捉数据库中的DML、DDL语句以及用户定义的事件,通过传递,最后在目的数据库中应用、执行相关的信息和事件。对于局部的复制技术需求,Oracle Streams流复制技术较为合适。Streams可针对特定的数据库对象进行复制,甚至可以选择具体SQL语句。Streams的复制策略具有较高的灵活性,能实现低带宽分布式环境的数据复制和同步,而且Streams能在异构环境下实施。在设计高用可方案时,往往需要考虑充分利用现有的设备资源。若使用的设备存在异构的情况(例如采用不同操作系统,Streams是一种较理想的解决方案。Or

28、acle Streams使信息共享化。每一条共享的信息在Oracle Streams中都被称为一条消息。Streams能在同一个数据库内部或者不同数据库之间传递消息,并且能根据路由配置将指定的消息传递到指定的目的地。它在捕获消息,管理消息,以及在不同数据库或应用程序之间共享消息等方面提供了比传统解决方案更为强大的功能和扩展性,并且提供了分布式企业级应用、数据仓库、高有效性解决方案等功能。我们可以同时使用Oracle Streams提供的所有功能。当需求变更时,我们可以实现新的功能,而不影响现有的功能。通过Oracle Streams,我们能够掌控诸如:将哪些信息放入Streams中,数据库之间

29、消息的流向,消息传递到数据库时做何处理,何时关闭Streams等等。根据我们自己制定的规范,Streams能够在数据库中自动的捕获、储存和管理DML、DDL等操作产生的消息。我们可以向Streams中放入自定义的消息,Streams能够自动的将消息传递到其他数据库或者应用程序。根据用户定义的规范,Streams 将决定如何处理传递到目的地的消息。19Oracle流复制的架构非常灵活。如图2-2所示,流包含三个基本元素:捕获、存储、消费。 图2-1流复制架构Streams的原理是通过日志读取技术,从Oracle的日志中解析出数据,然后传递到目标数据库并应用,从而将源数据库的数据复制到目标数据库。

30、复制可以是双向的,也可以是单向的。整个的复制过程可以分成三个步骤:捕获(capture、传播(propagation和应用(apply,利用高级队列(advance queue来将这三个步骤的数据串起来,通过定义不同的规则(rule来控制需要复制的数据。复制可以基于全库,基于表空间,基于用户或者基于表,提供了相当大的灵活性。(1捕获捕获进程(capture process能够捕获到table、schema、甚至整个数据库的变更。这些变更都会记录到数据库重做日志中,捕获进程从重做日志中捕获到这些变更并将其格式化为LCR(logical change record,逻辑变更记录。哪些消息将被捕获由

31、规则确定,这些消息被称为Captured messages。产生消息的重做日志所在的数据库被称为源数据库。捕获进程能捕获到本地源数据库或是远程数据库的变更,并将LCR放入相应的队列(Queue,这种方式常被称为隐式捕获。用户或应用程序可以手动的将LCR或用户自定义的消息放入队列,这种方式常被称为显式捕获。捕获进程可以直接在源数据库捕获日志,也可以先将日志(归档日志或者联机日志传递到目的数据库中进行捕获,这就是本地捕获(local capture和异地捕获(downstream capture。(2存储事件一旦被捕获就将被放入存储区域。存储区域是一个队列,它可为存储和管理捕获事件提供服务。数据库

32、表的变更将被格式化为LCR,然后被存储于存储区,直到有订阅者消费它们。捕获进程将消息放入ANYDATA队列,ANYDATA 队列能存放不同类型消息。用户和应用程序同样可以将消息放入ANYDATA队列,也可以放入指定类型的队列,指定类型的队列只能存放同类型的消息.(3传递Streams propagations进程能够将消息从一个队列传递到另一个队列,这些队列可以在同一个数据库中,也可以在不同数据库中。传递哪些消息同样由规则确定。(4消费当消息从队列中出队时将被消费。应用过程(apply process隐式的将消息出队,而用户、应用程序或是消息客户端显式的将消息出队。消费消息的数据库被称为目标数

33、据库(destination database,目标数据库和源数据库可以是同一个。这样流复制就通过捕获,传递,消费将DML和DDL从源数据库传递到目的数据库达到数据同步,如图2-2所示。 图2-2流复制工作原理(1按复制对象分类1 表复制就是在两个复制数据库之间,对需要复制的表进行指定,只有被指定了的表,才参与复制,优点是比较灵活,缺点是如果需要复制的表比较多,制定规则的工作量比较大,本文研究的就是基于表级进行复制。2 表空间复制就是在需要复制的两个数据库之间,只对表空间进行复制,当然,这里需要复制的表空间一定是自包含的。3模式复制在需要复制的两个数据库之间,只对用户进行复制。只要指定复制用户

34、,那么这个用户所拥有的所有对象,比如表,视图,存储过程等都自动会复制到目标数据库去。4 数据库复制就是在两个复制的数据库之间,数据库的所有方面都会复制到目标数据库去,类似于Oracle的逻辑standby,比较适合做数据库的灾备。(2按复制方向分类1 单向复制单向复制,也称主从式复制或主版本(master copy复制,指的是两个复制结点之间只从一个结点向另一个结点进行复制,源结点保存复制对象,目标结点保存复制对象的副本,源结点中数据对象具有可读可写的特性,目标结点中的数据对象只具有可读的特性,修改数据对象需要在源结点上进行,从而预防了更新冲突的发生。这种复制方式比较简单,应用范围也比较广,在

35、数据仓库,灾难备份等领域都有大量的应用。如在灾难备份中,所有源站点都向备份站点进行复制,但备份站点没有任何变化发生,当然,可以直接在这个备份站点进行只读访问,让负荷从源站点上分开了。2 双向复制双向复制也称对等式(peer-to-peer复制,多版本(multi-copy复制或随处修改(update anywhere复制,指的是两个复制结点之间可以互相复制,复制结点既是源结点也是目标结点。源结点和目标结点上的复制对象都是可读可写的。双向复制比单向复制更加复杂,实现难度也较大,但应用的范围要更广泛一些,在移动环境、动态环境等场合下大多采用这种复制方式。(3按传播更新的方式分类1 同步复制同步复制

36、是在一个原子事务中同时更新所有的复制结点,同步复制可以进行序列化操作,但是在交互过程中需要更多的消息交互,从而降低了复制性能,也增加了事务执行的响应时间。2 异步复制异步复制是在本地事务提交以后再将本地数据的变更反映到其他复制结点上,这种方式不需要实时的连接,可以很好的提高复制性能,但异步复制的一个问题是在复制结点中存在“脏”数据,当两个事务在不同结点读和写数据时,就无法保证事务的序列化,这种复制方式一般应用在对数据一致性要求不是很高的地方。2.2 流复制的关键技术每个Oracle数据库都包含至少两个重做日志文件,这些文件被共同称为数据库重做日志。重做日志的主要用途是用来记录数据库产生的所有变

37、更。当人为或硬件原因导致数据出错时,重做日志能确保数据恢复到之前的状态。捕获进程是Oracle的可选后台组件之一,扫描重做日志以捕获对数据库进行的DML和DDL操作,该重做日志所在的数据库称为源数据库。捕获进程负责执行的是流配置结构中第一阶段的工作。它检查重做日志中的DML和DDL记录,根据捕获进程的规则集来核查记录。规则是为了确定你希望从重做日志中捕获哪些变更事件而设置的数据库对象。根据规则集,捕获进程取出恰当的变更,并将他们转换成逻辑变更记录(LCR,然后将LCR加到队表中去。Oracle流的显著特征之一是支持基于日志的变更捕获。从重做日志文件中直接捕获变更可以使源系统的间接费减低到最少。

38、基于日志的捕获使得表的变更可以被存入日志文件,从而可以保证当发生损害或媒体故障时的可恢复性。Oracle数据库可以读,分析和解释重做操作信息,这些信息当中可能包括数据库活动历史的信息。Oracle数据库可以挖掘信息并将变更数据传递到捕获过程。数据库提供了辅助的日志记录功能,它可以将附加信息如主键列记录到重做流中,以有助于这些信息的传递。捕获处理首先捕获从重做日志中提取出来的变更数据,将其格式化为LCR的格式。然后将其放入队列中以备进一步地使用。捕获处理可以基于定义好的规则智能化地过滤LCR,从而使所需对象的变更被捕获。Oracle流除支持对存档日志文件的挖掘,还支持对在线重做日志的热挖掘。在热

39、挖掘的情况下,流在变更数据被写入的同时就被热挖掘,从而减少了捕获的延迟。如图2-3所示: 图2-3 捕获进程另外,在Oracle10G中新增了一个新的特点,可以将捕获进程从源数据库移走,即将归档日志从源数据库传送到另外的一个数据库,然后在流下游启动捕获进程。通过这种方式,就能将流环境完整的迁移出源数据库,对源数据库就没有任何影响了。捕获进程负责将捕获的LCR放入一个队列表中,队列表中的LCR可能会被应用进程消费,也可能会被传播到其他的队列中去。其他的队列可能是本地的,也可能是远程的。传播进程通过配置传播作业来实现,传播作业是数据库作业中的一种,标志是DBMS_JOB。传播作业可以评估规则集,从

40、而只有一些特殊的LCR会被传播到下一个队列中去19。如图2-4所示:成都理工大学硕士学位论文 图2-4 传播进程传播作业将LCR从源数据库传送到了目标数据库的队列表中之后,目标数据库应用LCR。比如,代表一个表的变更的LCR需要被应用到目标站点上对应表的副本上去。Oracle用一个应用进程来完成这项工作,应用进程读取队列表中的LCR,然后再根据他的规则集,判断哪些LCR是需要消费的。流的应用进程有很大的灵活性和很强的配置能力。可以为应用配置一个规则集,从而可以拥有进一步的过滤选项。应用进程可以通过规则来决定一个LCR是直接应用到他相关的对象中去,还是将他传送给一个中间过程来处理,如果将LCR传

41、送给中间过程,则可以在应用LCR之前,将变更编码成数据,比如修改数据类型或者在某一列添加一个新值。19无论是捕获进程已经开始或即将开始捕获数据库变更,还是这些变更即将被本地程序接收或是传递到远程数据库,我们都应该保证这些操作对应的数据库对象已经被实例化。在Streams中,实例化对象有下列步骤:(1在源数据库中准备好要实例化的对象。(2如果在目标数据库中没有这些对象的拷贝,则根据源数据库中的对象在目标数据库中创建。我们可以利用export/import,transportable tablespaces,或者RMAN来拷贝对象。如果目标数据库中已经有了拷贝,则本步骤省略。(3在目标数据库中设置

42、实例化SCN(instantiation SCN。第2章 Oracle流复制技术有时,第一步和第三步会由系统自动完成。例如,当我们使用DBMS_STREAMS_ADM包为捕获进程在正规则集中添加规则时,第一步会自动完成。同样,当我们使用export/import 或者transportable tablespaces将对象从源数据库拷贝到目标数据库时,第三步会自动完成。在apply process从队列中取出消息之前,即使只是将LCR发送给另外的apply handler而非自己进行操作,对象也必须实例化。复制数据的SCN,并开始应用在对象被复制之后提交的任何变化。19在流复制中,任何操作都必

43、须服从规则。在流复制中,一条规则事实上指的是一个特定的事件。从字面上来看,规则是存在于Oracle数据库之中的对象。你可以通过DBMS_RULES来定义或修改规则。规则是通过规则集来组织的,一个规则集可以被捕获、传播作业或者应用进程应用,来确定哪些记录在流复制过程中会使用。捕获进程使用规则集来决定重做日志中的哪些记录被转化为LCR 并放入队列列表。传播作业使用规则集来决定队列中的哪些LCR被移到远端的队列表。应用进程使用规则集来决定谁来消费队列表中的LCR,一个规则集可以同时被捕获代理、传播代理和应用代理引用。反过来,每一个捕获代理,传播代理或者应用代理可以有多于一个的规则集。规则集通常被定义

44、为肯定的规则集或者否定的规则集。肯定的规则集指的是一个集合,该集合负责通知进程在查看记录的过程应该包括什么。通过规则集,可以非常紧密的控制所有在流传播和应用的数据。因此,可以说规则是流成功复制的基础。192.3小结本章详细介绍了流复制的概要,架构分析了流复制的一些关键技术,包括捕获,传播,应用,规则等技术。成都理工大学硕士学位论文第3章项目需求分析3.1项目环境目前项目应用的系统架构是V2和V3架构。V2 架构是物理上的两层结构,如图3-1,这个系统应用了Windows NT4的IIS 连接后台的Oracle 数据库。Oracle数据库安装在Sun Solaris系统上。 图3-1 V2架构为

45、提高网站长期运转的可能性和拓展性,提高抵御商业变化的能力,提高市场的实时性。系统从基于网络的站点升级到企业级应用。升级要通过用同步和异步服务器的交互操作,从V2升级到到V3版本。V3架构目前正在应用,并且新的站点程序都基于V3,架构的未来网站平台构建也是基于V3架构的。第3章项目需求分析 图3-2 V3架构V3系统也是两层的,如图3-2。其中包括底层Windows 2000应用服务器运行IBM WebSphere 和Java代码。用户不是直接访问应用服务器,而是通过网络服务器把用户请求传给应用服务器。V3 网络服务器包括IBM (WebSphere Application ServerWAS

46、5 加载于IIS 并接收http请求,然后将请求传给应用服务器。网络服务器数量一般小于应用服务器,因为应用服务器处理了多数进程。应用服务器的作用:接受所有网络服务器传来的http请求,用程序处理请求。需求处理过程:1请求在LB,2请求在网络服务器,3应用服务器,4另一个LB5 应用服务器。成都理工大学硕士学位论文 图3-3 系统总体架构目前项目的应用系统是V2和V3架构并存的,如图3-3所示。(1V2数据库连接第3章项目需求分析 图3-4 V3数据库连接(2V3数据库的连接,如图3-4,数据层Data Access Layer (DAL连接由数据源控制,数据源连接串记录在数据库中。DAL信息在

47、内部有效可见,如果一个数据库无效或变成无效,应用服务器自动标记它。3.2数据库容灾备份需求分析、设计满足高可用性需求,容灾数据库采用流复制和standby技术相结合的模型。系统设计如图3-5,一个主数据库有一个standby数据库,每个主数据库通过Oracle Streams建立一个容灾备份数据库,而这个容灾备份数据库也要有一个standby 数据库备份。通过Oracle Streams建立的容灾备份数据库是和主数据库实时同步的,而standby数据库按需求比其对应的主数据库有一段时间的延迟。这样能最大的保证数据的安全、完整性。当主数据库出现问题时,可以通过网络服务器和应用服务器连接到容灾备份

48、数据库,主数据库和容灾备份数据库需要恢复之前数据时,可以通过各自的standby数据库恢复。成都理工大学硕士学位论文这样,容灾备份系统由一个生产数据库和若干备用数据库组成,形成了一个独立的、易于管理的分布式数据保护方案。流复制配置中的工作区可以位于相同的数据中心,也可以采取地理上分布方式。在操作主数据库时,对主数据库的更改而生成的更新数据发送到备用数据库,这些更改可以应用于运行于管理恢复模式下的备用数据库。当主数据库出现了故障,备用数据库即可以被激活并接管主数据库的工作。 图3-5 容灾数据库系统对于读写不频繁,数据量不大的应用通常读写都在一个数据库上,而对于电子商务数据库要满足上万用户同时读

49、写的需求,需要将读写分开。这样,可以大大降低数据库、网络、服务器的负荷,提高访问速度和安全性。如图3-6,一个写数据库只负责写入操作,数据通过Oracle Streams 实时复制给几个读数据库,它们在数据库级是同构的,数据是一致的。当进行写操作时修改写数据库,读操作时访问读数据库。第3章项目需求分析 图3-6 读写分开 图3-7 读写分开示例读写分开的应用示例,对同一个写数据库对应的几个读数据库可以分布在不同的地理位置,方便访问应用。如图3-7数据中心在中国和美国两地,两地的读数据库都对应相同的写数据库,在数据上是一致的。用户访问时候连接到和用户最近的数据中心,这个过程是对用户不透明的,但大

50、大提高的访问速度。成都理工大学硕士学位论文3.3 小结本章对对系统环境进行了详细的分析,对流复制在容灾系统中的使用进行了探索。根据需求、分析,提出了流复制与standby技术相结合的模型,提出了通过流复制技术提高数据库高可用性和数据读写分开缓解网络压力的的应用。第4章 Oracle流复制实验第4章 Oracle流复制实验4.1 试验目标在流复制数据库上选择具有代表性的表。进行数据增加,修改,删除,检查主数据库和备份数据库两边数据是否同步。对表进行大量数据插入的压力负载测试,比较主数据库和备份数据库的数据同步情况,延迟时间。4.2 实验说明为了便于实验,指定本系统中对应的数据库实例名称和数据表。

51、在源和目的数据库上配置流复制环境和用户帐号,创建一个测试用户strm_user,在每个数据表上测试 SQL语句来插入、更新、删除数据。通过执行语句,测试目标数据库性能。考虑到只是做实验,为了减少不必要的干扰,只需要一个核心模型即可。在一般系统中,只创建最常用的表和特殊表,即一个IOT表,一个有一列为long 型的一般表,这两种表代表了实际流复制应用中的大多数表类型。具体表定义如下:CREATE TABLE "AUCTION_TRACK_IOT" ("WATCHER_ID" NUMBER(18,0 NOT NULL ENABLE, "ITEM_I

52、D" NUMBER(38,0 NOT NULL ENABLE, "END_TIME" DATE NOT NULL ENABLE,"CREATION_DATE" DA TE,"UTF8_STATUS" NUMBER(1,0,"WATCH_ALERT_STATUS" NUMBER(10,0,"SITE_ID" NUMBER(4,0,"SELLER_ID" NUMBER(38,0,"CATALOG_ID" NUMBER(38,0,"PROD_

53、REFERENCE_ID" NUMBER(38,0,"USER_TYPE" NUMBER(4,0,"FLAGS01" NUMBER(10,0,"LAST_MODIFIED_DA TE" DA TE,"IS_DELETED" NUMBER(1,0,"SALE_TYPE" NUMBER(38,0,"CATEGORY_ID" NUMBER(38,0,"BID_GROUP_ID" NUMBER(38,0,"FLAGS02" NUMBE

54、R(38,0,CONSTRAINT "AUCTION_TRACK_IOT_PK" PRIMARY KEY ("WATCHER_ID" ,"ITEM_ID" ENABLE ORGANIZATION INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 10485760 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT TABLESPACE "MD_DATA" LOGGING NOCOMPRESS PCTTHR

55、ESHOLD 50 OVERFLOW;CREATE INDEX "AUCTION_TRACK_IOT_E_IDX" ON "AUCTION_TRACK_IOT" ("END_TIME" ;ALTER TABLE "AUCTION_TRACK_IOT" MODIFY ("USER_TYPE" DEFAULT 0;CREATE TABLE "USER_ITEM_PROPERTY" ("USER_ITEM_PROPERTY_ID" NUMBER(20,0 NOT

56、 NULL ENABLE, "USER_ID" NUMBER(38,0 NOT NULL ENABLE, "PROPERTY_TYPE" NUMBER(3,0 NOT NULL ENABLE, "PROPERTY_STA TUS" NUMBER(3,0 NOT NULL ENABLE, "PROPERTY_CONTENT" LONG,"CREATION_DATE" DA TE NOT NULL ENABLE,"LAST_MODIFIED_DA TE" DATE NOT NUL

57、L ENABLE,"UTF8_STATUS" NUMBER(1,0;INSERT INTO USER_ITEM_PROPERTY(UTF8_STATUS,USER_ITEM_PROPERTY_ID,USER_ID,PROPERTY_TYPE,PROPERTY_STATUS,PROPERTY_CONTENT,CREATION_DATE,LAST_MODIFIED_DATEV ALUES(1,1,1,1,1,1,sysdate,sysdate;CREATE UNIQUE INDEX "USER_ITEM_PROPERTY_PK" ON "USER_

58、ITEM_PROPERTY" ("USER_ITEM_PROPERTY_ID" ;CREATE INDEX "USER_ITEM_PROPERTY_UPP_IDX" ON "USER_ITEM_PROPERTY" ("USER_ID" ,"PROPERTY_TYPE" ,"PROPERTY_STA TUS" ;ALTER TABLE "USER_ITEM_PROPERTY" ADD CONSTRAINT "USER_ITEM_PROPE

59、RTY_PK" PRIMARY KEY ("USER_ITEM_PROPERTY_ID" USING INDEX ;ALTER TABLE "USER_ITEM_PROPERTY" MODIFY ("CREATION_DATE" DEFAULT sysdate ;ALTER TABLE "USER_ITEM_PROPERTY" MODIFY ("LAST_MODIFIED_DATE" DEFAULT sysdate ;4.3 数据测试目的:测试备份数据库是否可以正常的数据复制。步骤:在表AUCTION_TRACK_IOT、USER_ITEM_PROPERTY上插入、删除、更新数据,看是否同步到备份数据库上。测试脚本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论