




已阅读5页,还剩51页未读, 继续免费阅读
(计算机软件与理论专业论文)dm3双机热备份研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 随着数据库系统的广泛应用和网络的飞速发展,高可用性数据库系统 成了獗据库管理系统的一个重要的研究领域。针对数据库高可用性的要求, 我们设计了d m 3 双机热备份系统,解决了备份数据库和主数据库数据同步 的问题, 角色转换 d m 3 题以及主数据库和备份数据库 服务器和一台备份数据库服务 器组成,两台机器分工协作,提供连续可靠的运行。双机热备份系统在正 常的工作情况下,客户与主数据库相连接,备份数据库需要保持与主数据 库的同步更新,可以在主数据库有计划的停机或者故障停机的时候,备份 数据库接管工作,升级为主数据库。 针对备份数据库和主数据库数据同步的问题,利用同志来记录主数据 库的更新,备份数据库接收主数据库发送的日志重做主数据库的工作,来 保持和主数据库的备份一致性,避免了传统的数据库块复制可能会造成版 本不一致以及s q l 语句复制不能解决并发事务的问题。由于不是所有的应 用都严格要求数据的高度一致性,我们设计了最大数据保护、最好性能、 最高可用性这三种工作模式,在数据同步和系统性能之间进行折中。针对 角色转换的问题,设计了一个双机控制程序,提供转移切换和故障切换的 角色管理功能。 以上设计都是以d m 3 为基础,结合d m 3 的e 志和恢复技术,实现了 系统的基本功能。 【关键字】 数据库高可用性;双机热备份;备份一薮性:转移切换;故 、v 障切换 、 华中科技大学硕士学位论文 a b s t r a c t w i t ht h ew i d ea p p l i c a t i o no fd b m s a n dt h eh i g hd e v e l o p m e n to fn e t w o r k h i g ha v a i l a b i l i t yd a t a b a s eh a sb e c o m ea ni m p o r t a n tr e s e a r c h a r e ao fd a t a b a s e m a n a g e m e n ts y s t e m s f o rt h er e q u i r e m e n to fh i g h a v a i l a b i l i t y ,w ed e s i g n a s o l u t i o no f h o t b a c k u ps y s t e m 。t h eh o t b a c k u ps y s t e mh a s as e r i e so fp r o b l e m i n c l u d i n gt h es y n c h r o n i z a t i o nb e t w e e nt h ep r i m a r yd a t a b a s ea n dt h es t a n d b y d a t a b a s e ,t h e c o n f l i c t i o nb e t w e e nt h e s y n c h r o n i z a t i o n a n dt h e s y s t e m p e r f o r m a n c e ,a n dt h er o l e s w i t c hb e t w e e n t h ep r i m a r ya n dt h es t a n d b y a l lt h e p r o b l e m sw i l lb es o l v e di nt h i sp a p e r t h es y s t e mi sc o m p o s e dw i t hap r i m a r yd a t a b a s ea n das t a n d b yd a t a b a s e , w h i c hp r o v i d eac o n t i n u o u sa n dr e l i a b l er u n n i n g t h es t a n d b yd a t a b a s ei sk e p t o n l i n ea n d s y n c h r o n i z e d w i t ht h e p r i m a r y d a t a b a s ew h e nt h e p r i m a r y d a t a b a s eh a sa p l a n n e d d o w n t i m eo r f a i l u r e ,t h es t a n d b y d a t a b a s ew i l l t a k e o v e rt h ep r i m a r yd a t a b a s ea n dn o ti n t e r r u p tt h es e r v i c ef o rt h ec l i e n t s w eu s et h el o gt ot r a c kt h eu p d a t eo ft h ep r i m a r yd a t a b a s et h es t a n d b y d a t a b a s er e c e i v e st h er e d o l o gs h i p p e d f r o mt h e p r i m a r yd a t a b a s e ,a n d is u p d a t e db yp e r f o r m i n gr e c o v e r y t h i sm e t h o dk e e p st h ec o n s i s t e n tb e t w e e n t h ep r i m a r ya n dt h es t a n d b yd a t a b a s e s ,a v o i d i n gt h ec o n c u r r e n c yt r a n s a c t i o n s t ob a l a n c ed a t aa v a i l a b i l i t ya g a i n s tp e r f o r m a n c er e q u i r e m e n t s ,w eo f f e rt h e m a x i m u m p r o t e c t i o n m a x i m u ma v a i l a b i l i t y ,a n d m a x i m u m p e r f o r m a n c e m o d e sf o rs o m ea p p l i c a t i o n sw h i c hn o tr e q u i r eh i g hc o n s i s t e n to fd a t a a l lt h ed e s i g na b o v ei s b a s i n go nd m 3 c o m b i n e dw i t hl o ga n dr e c o v e r y t e c h n i q u e s ,t h i ss y s t e mh a si m p l e m e n t e dt h em a i nf u n c t i o n s 【k e yw o r d s 】h i g h - a v a i l a b i l i t yo fd a t a b a s e ;h o t b a c k u p ;s t a n d b yc o n s is t e n t s w i t c h o v e r ;f a i l 一o v e r 华中科技大学硕士学位论文 1 1 问题的提出 1绪论 随着数据库系统在企业应用中的地位日益重要,数据的可靠性、可用 性已成为影响企业业务系统运行的重要影响因素。伴随着网络的发展,企 业如今可以通过i n t e r n e t 将自己的业务扩展到世界的各个角落:但同时, i n t e r n e t 对企业的信息系统,尤其是数据库系统的可用性提出了更高的要 求。由于用户分散在全球各处,2 4 小时都会进行访问,一些关键的业务应 用甚至要求7 2 4 的不间断运行。系统的停机会给企业带来难以估量的 损失,将严重损害企业与自己客户的关系,用户会对企业产生不信任感, 因此要求信息系统和作为信息系统基础的数据库系统必须有很好的可用 性,保证2 4 小时不间断的运行尽量降低停机的时间【引。 衡量系统可靠性的两个关键指标是系统的平均无故障时间( m t t f ) 和 平均恢复时间( m t t r ) “。无论是软件或操作系统故障、硬件失效或者自 然灾害,还是例行的检修维护,都会造成系统停止服务。减少系统服务的 停止时间和从服务停止到重新启动服务并恢复到原有的服务能力( 包括数 据完全恢复到服务停止前的状态) 的时间是提高系统可靠性的关键途径。 传统的备份、恢复系统重点在于保护数据的可靠性,提供在数据库故 障后全部或部分地恢复数据的能力1 。通过将数据复制到磁盘、磁带等介 质并保存在其他位置,当数据库中数据被破坏无法工作时,还原这些备份 的数据文件拷贝,并利用这些拷贝重建数据库,可以将数据库恢复到备份 前的状态。备份一个完整的数据库需要较长时间,采取增量备份可以缩短 每次备份的时间,但会增加恢复的时间。利用备份数据进行恢复会丢失最 近一次备份后对数据库的修改。如果数据库使用了r e d o 同志并且也备份了 数据备份后的日志,利用日志可以将这些丢失的修改重做,将数据丢失减 一_ 一 华中科技大学硕士学位论文 小到最少,但同时也进一步增加了恢复的时间”。 备份和恢复通常不是实时的,定期进行备份的系统仍然有数据丢失的 危险,同时较长的数据恢复时间也不能满足企业关键业务不能长时间中断 服务的要求m 。 双机热备份系统是为了解决这一问题而提出的数据库高可用性的解决 方案。通过冗余的硬件、软件配置,双机热备份系统在主、从服务器之间 提供接近实时的数据同步,当主数据库发生故障或需要停机检修时,能通 过切换,用从数据库替换主数据库继续提供服务,大大提高了数据的可用 性1 “。 热备份的过程就是备份数据库中所有数据的过程,在此过程中主数据 库服务器还要处理大量的数据,进行读写操作。一致性问题是双机热备份 系统中最重要的问题。其中包括主从数据库同步的问题,同步和提高系统 性能的冲突问题以及主数据库和备份数据库角色转换的问题。 本课题来源于8 6 3 数据库重大专项:通用数据库管理系统d m 4 。 1 2 国内外研究概况 1 2 1 热备份研究概况 多年来,软件和硬件厂商都在设法降低系统的停机时间,从而保证企 业有一个高可用性系统”。许多商业系统( 传统和在线的) 都有高可用性 解决方案“”。数据库高可用性其中的一个目标,就是在系统失败时,数据 库系统对用户保持持续可用性,并且能够快速的恢复“3 _ “3 。为了实现这个 目标,目前推出了很多解决方案,例如在线维护“”,集群1 ,热备份m , 改进的冷备份 1 等等。 数据库的可用性潜在的问题包括两个方面。个方面是指在故障之后 恢复全部的操作需要花费的时间“。技术人员有时候会使用温度作为一种 分析方法来量化恢复的过程。例如,当遇到瞬间的不易察觉的故障时,集 一_ - _-_ 2 华中科技大学硕士学位论文 群是热的;反之,从备份磁带上恢复数据库这样耗时的过程就是冷的。处 于这两种极端之间的情况,复制技术被认为是温的。 另一个方面是在故障发生后,数据库中的内容跟故障发生前比较起来 到底有多新“。例如,当数据库在中午崩溃了,只能从备份磁带上恢复到 头一晚午夜时的状态,其间1 2 小时的对数据库进行插入更新操作就丢失 了。同样的,当使用复制采用异步方式时,备份数据库可能会比主数据库 落后几分钟,因为通过网络来收集和传送数据要花费时间”。 维护( m a i n t e n a n c e ) ,对于数据库的可用性,是一个非常大的决定因 素。例如,大多数的有计划的停机是用来对数据库进行维护和重新配置。 尽管为了维护数据库而停机是事先计划好了的,但是影响到要求2 4 x7 小 时操作的业务。而且许多数据库管理员( d b a s ) 和信息技术( i t ) 管理人 员承认有时候维护会产生错误,这样一来,有计划的停机变成了无计划的 了。 基于以上原因,现在的d b a s 只要有可能都会坚持采用在线式维护 ( 0 n l i n em a i n t e n a n c e ) 操作”。对于一些数据库,也可以使用第三方工 具,可以实现在线备份、表的重新组织、重建索引、错误隔离等等。这样 可以减少或者消除计划停机演化成非计划的可能性。此外,在线式维护使 d b a s 能够不必等待规定的停机时间灵活的适应变化。 跟维护相关的另一个问题是配置问题。在早期的数据库管理系统中, 一个数据结构或操作环境的小小变动,都要求d b a 停止数据库,配置新的 参数之后再重新启动。这在当今快速变化的商业环境中是不可想象的。重 起也是停机的一种形式,所以一个支持动态重配置的数据库是任何高可用 性策略的重要组成部分。 1 2 2 热备份相关技术 硬件集群( c 1 u s t e r s ) ,集群技术是近几年兴起的发展高性能计算机的 一项技术,在发生硬件或者数据库故障的时候,实现最短时间的恢复,是 一。 华中科技大学硕士学位论文 一个首选的策略“。集群技术就像冗余部件可以免于硬件故障一样,集群 技术则可以使整个系统免于瘫痪以及操作系统和应用层次的故障。一台服 务器集群包含多个拥有共享数据存储空间的服务器,各服务器之间通过内 部局域网进行互相连接;当其中一台服务器发生故障时,它所运行的应用 程序将由与之相连的服务器自动接管;在大多数情况下,集群中所有的计 算机都拥有一个共同的名称。集群系统内任何一台服务器都可被所有的网 络用户所使用。一般而言,一个典型的群集有两个或者多个结点,每个结 点上都有一个活跃的数据库服务器提供热备份的功能。如果其中一个数据 库发生故障,另一个能立即接管它的负载,从而保证了对客户应用的连续 可用性”3 1 。而且集群技术还提供了一个特性,即透明的将一台不可用服务 器上的所有服务转移到其他可用的服务器上。在故障转移的情况下,客户 甚至可能没有注意到服务器所在的机房已经发生了重大灾难,或者没有注 意到由于维修的目的,重要的资源已经被卸载了。简而言之,集群允许一 台或多台物理服务器充当一台逻辑服务器”“。客户可以将一组服务器看作 一台单独的计算机,而且应用程序可以像对待单独的计算机那样与之进行 交互。当一台服务器不可用时,另一台服务器能够自动取代它,这可以延 长正常工作时间并提高利用率。 尽管高可用集群的热备份能力提供了最少的恢复时间,但是集群有严 重的地理限制。结点之间的通讯往往通过s c s i 或者其它的协议,这种情况 并不适用于w a n 或i n t e r n e t 通讯。而且集群的结点必须很紧密的在一起, 通常在同一个数据中心”“。当出现建筑物断电或者发生火灾这样的意外事 件时,集群就不能工作了。所以就有了另外一种对集群进行补充的数据库 可用性策略,这种策略的特点就是有多个数据中心分布在不同的地方,在 第一个集群故障时仍可保证系统持续运行。 另一种是远程复制技术眙。传统的事务处理系统是集中式系统或客户 服务器系统。这样的系统不具备抵御火灾、水灾、地震等环境灾害的能力。 人们逐渐提出了具有高可用性,能够在环境灾害的情况下继续工作的事务 处理系统的需求。通过在分布式数据库系统中的数据复制,对数据的所有 一_ 华中科技大学硕士学位论文 副本进行更新,事务可以达到高可用性。可以采用两阶段提交来在节点问 进行同步“”。如果一个节点发生故障,事务处理可以使用其它的节点继续 进行。然而,像并发控制这样原先在单个节点上实施的动作,现在需要在 多个节点间进行同步,从而会造成延迟。而且,两阶段提交本身代价很高, 因此,采用这样的模式使事务吞吐量受到很大影响。另一种可采用的方法 是在一个称做主节点的节点上进行事务处理,雨另有一个远程备份节点, 当在主节点上进行更新时,远程节点必须保持与主节点同步。我们将所有 日志记录从主节点传送到远程备份节点来达到同步“”。远程备份节点必须 是物理地与主节点分离,这样发生在主节点的灾害就不会破坏远程备份节 点。当主节点发生故障时,由远程备份节点取而代之,进行处理。然而, 远程备份节点必须首先使用它自己的来自主节点的数据副本,这个副本也 许是过时的,以及它从主节点接收到的日志记录进行恢复。事实上,远程 备份节点执行的恢复动作就是主节点恢复时需执行的动作。对标准的恢复 算法稍加修改,就可用于远程备份节点的恢复。”1 。一旦完成了恢复过程, 远程备份节点就可以开始处理事务。与单结点系统相比,远程复制系统的 可用性大大增强了,因为即使主节点上的所有数据都丢失了,系统仍然可 以恢复。远程备份系统的性能与采用两阶段提交的分布式系统比较起来性 能要好。 冷备份( c 0 1 ds t a n d b y ) 技术也可以减少备份和恢复的时间。传统的 备份恢复方法虽然比较低层次,但是这种技术已经非常成熟了,具有丰富 性、健壮性的特点,而且这种备份和恢复的方式便于掌握,简单易懂”1 。 它的缺陷就在于故障或者系统崩溃之后需要花费时间来恢复数据库,这个 时间可能会持续数个小时,导致终端用户无法工作。这种称为冷备份的方 式- 只要对备份过程增加一个额外的步骤,即在一个备份数据库服务器上 进行恢复工作。因为备份数据库处于冷状态,需要花几分钟的时间来启动, 但是这仅占恢复时间的很小一部分。如果周期性的将事务同志从主机传送 到备份机,这样就减少了传送的数据库内容。因此,冷备份通过将一个可 靠的正确的备份恢复过程进行扩展,对于一些允许丢失少量低价值的事务 华中科技大学硕士学位论文 的应用来说,实现了数据库的高可用性”。它的缺点就是会出现数据丢失。 还有一种热备份复制和切换( w a r ms t a n d b yr e p l i c a t io na n d s w i t c h i n g ) 的策略。这是实现将数据从主数据库复制到备份数据库的一种 软件策略“。热备份复制意味着备份机一直保持着联机状态并且完全的运 行,所以当主机失败时备份机可以立即自动接管。为了保持两个数据库的 同步,采用连续的或者预定的原则复制事务”“。两个数据库运行在独立的 服务器上,各自写独立的磁盘设备,所以当其中一个失败了,另一个并不 受影响。 一方面,数据库的失败是很短暂的,因为复制的热备份数据库总是处 于联机状态。主机和备份机可以放在不同的地理位置,通过w a n 进行通讯, 所以丢失一个结点只会影响到一台服务器。而且复制的过程并不影响应用 的执行,因为复制是在事务提交之后异步进行的。另一方面,热备份数据 库有潜在的危险,因为需要花费时间对数据的增加或者改变进行通讯。在 事务活跃的高峰期,主服务器的负载很大,会影响到复制过程,导致了备 份会有几分钟的落后。 热备份复制极好的解决了数据库服务器的失败问题。但是在故障之后, 通常客户应用程序必须重新运行并且连接到新的数据库服务器,这样对客 户端造成了很大的局限。为了解决这个问题,热备份复制增加了一个“转 换”机制,使得在故障发生时客户端不需要进行重新连接。这样故障对终 端用户就是透明的,顶多在服务器切换的时候会稍微感觉到延迟。 总之,带有转换机制的热备份复制使用户看来服务器的故障是透明的, 并且由于它的地理灵活性,用于发生灾难性的数据中心丢失的恢复也是很 理想的。 一个热备份机制可以用一个假定的故障模型和故障类型来描述。可以 这样定义故障,一个站点完全失去了处理数据的能力,在一定时间内不能 访问数据,也有可能永远丢失数据。终端用户始终与主机或者备份机相连 接。当灾难发生的时候,终端用户与备份机相连接,备份机接管事务处理。 如何判断主机失败,以及主机和备份机之间的切换需要专门的程序。 一一 6 华中科技大学硕士学位论文 主数据库和备份数据库之间的交互可能有两种不同的策略,备份数据 库可能运行1 s a f e 事务和2 - s a f e 事务。一种可能是主数据库独立于备份数 据库提交事务。主数据库首先提交事务,接着通过传送日志记录将这个结 果传播到备份机上。这种方式称为1 s a f e 执行。使用这种方式,如果此时 主机突然遇到故障,备份机可能不知道该事务在主机上已经执行和提交, 这样,一个已提交的事务可能就丢失了。相对的2 - s a f e 执行,主机使用一 个两阶段提交协议,使得事务的提交可以同时到达两个站点。这样,已提 交事务就不会丢失。但是,由于1 s a f e 执行策略比起丢失些事务来说有 很多优点,所以很多系统都支持这种方式。文献 3 6 讨论了1 s a f e 和2 - s a f e 的折衷。 通常的做法采用基于日志的方式来实现热备份支持。经典的分布式数 据库中的方法并不适用于灾难恢复,文献 3 6 ,3 7 ,3 8 】对此进行了阐述。 t a n d e m 的产品r d f 和i b m 的产品i b mr e m o t er e c o v e r yd a t af a c i l i t y 都 是使用将日志传送到另一个站点的方式,通过日志汜录使备份机能够跟主 机数据同步更新。 1 2 。3 热备份商业应用 s y b a s e 最新推出的企业级数据库a d a p t i v es e r v e r e n t e r p r is e ( a s e ) 12 ,用户将可以获得数据库系统所需的连续可用性。这个系统可以通过一 个金字塔图来比较一下不同层次的可用性。在金字塔的最底层是硬件冗余, 它通常作为系统的第一个保护层。硬件冗余可以保护计算机和磁盘的失败, 一般有两种方式:r a i d ( 廉价磁盘冗余阵列) 和磁盘映射。这两种方式都通 过数据备份的冗余存储来保护磁盘失败。但如果错误数据也写入备份磁盘, 硬件冗余则无能为力。金字塔的第二层是冷备份。这实际上是定时地对证 在运行的数据库中的数据进行备份,一般是备份到磁带或磁盘上,当数据 库毁坏后t 还可以进行部分的恢复。冷备份可以通过s y b a s e 的备份服务器 来完成。这种方法的缺点是需要一定的时间来完成,在恢复期间,最终用 一_ - 7 华中科技大学硕士学位论文 _ i _ _ _ - _ l _ l _ _ l _ _ _ _ _ _ _ l _ _ - - i | _ _ _ l _ _ i _ l i ;= 目i 自_ ;_ i _ _ - _ _ _ t _ 目_ _ _ _ i i l _ 目- _ l _ i i i 户无法访问数据库,而且这种方法不易做到实时的备份。第三层是热备份a 热备份是通过使用s y b a s e 的复制服务器连接正在运行的主数据库服务器 和热备份服务器,主服务器和备份服务器可以通过局域网或广域网来连接。 当主数据库的数据修改时,变化的数据通过复制服务器可以传递到备份数 据库服务器中,保证两个服务器中的数据一致。在这种热备份方式中,两 个数据库分别运行在不同的机器上,并且每个数据库都写到不同的数据库 设备中。这种热备份是一种逻辑复制,它如果与冗余硬件方式结合使用, 可以有更好的可用性。金字塔的第四层是a s e l 2 支持的a c t iv e a c t iv e 备 份方式。在a s e l 2 中包括了一个伙伴服务器选项。这一选项可以使两个a s e 服务器互为伙伴,它们既可以采用非对称的主从模式,也可以采用对称的 a c t i v e a c t iv e 模式。在a c t i v e a c t i v e 模式中,两个服务器是对称的, 并且每个服务器都是活动的,可以运行用户的应用。这两个服务器互为备 份,当其中一个服务器由于某个原因停机时,另外一个伙伴服务器将接替 该服务器的工作,从而保证系统的可用性。在金字塔的顶层是自动的客户 失败转移( f a i l o v e f ) ,即在数据库服务器失败后,客户端可以透明且自动 地转移到伙伴服务器上。除了服务器端要提供支持外,客户端需要作相应 的改进,s y b a s e 的客户端标准o p e nc 1 ie n t1 2 0 在功能上进行了增强, 从而可以实现自动的客户失败转移。 针对数据一致性的问题,s q ls e v e r 提出了一种出版者 ( p u b l i s h e r ) 、分发者( d i s t r i b u d e r ) 和订阅者( s u b s c r i b e r ) 角 色的概念。各个场点数据库同时既可以为出版者也可以为订阅者还可以兼 任分发者的角色。既可以对其它场点数据库感兴趣的数据进行出版分发。 同时也可以对本地场点数据库感兴趣的数据进行订阅。各场点数据库的出 版者可以实时监测所出版数据的更新,维护保持其出版数据的最新内容。 根据对数据同步实时性和场地自治性的不同要求,可以把整个数掘库系统 的数据同步分为以下几种情况。 1 分布式事物处理( 具有最小的场地自治性,和最小的数据同步延迟) 在微软的分布式事务处理引擎( d i s t r i b u t e dt r a n s a c t i o n 一_ 。 华中科技大学项士学位论文 c o o r d i n a t o r ,d t c ) 的支持下,采用两阶段事务处理提交机制,确保数 据更改能够要么全部施加于所有副本集合的成员上,要么全部撤消,各个 场点数据状态回到更改前的状态。 2 事务级数据复制同步( 具有较小的场地自治性,和较小的数据同步 延迟) 这种方式可分为两种:a 允许数据订阅者更新数据的事务级数据复 制同步。首先要对各个数据订阅场点进行初始化,即将源场点的数据出版 传送到订阅数据的各个场点,然后各个数据订阅者采用d t c 将数据更新提 交到源场点,然后再由源场点将数据更新分布到所有订阅该数据的各个源 场点。在这种机制下,不仅允许数据出版者对所出版数据进行更新,同时 允许数据订阅者对订阅的数据进行更新。b 不允许数据订阅者更新数据的 事务级数据复制同步。首先要对各个数据订阅场点进行初始化,即将源场 点的数据出版传送到订阅数据的各个场点,然后采用定时机制定时将源场 点事务日志中累计的数据更新分布到各个数据订阅场点进行实施。在这种 机制下,仅允许数据出版者对所出版数据进行更新,而数据订阅者场点仅 允许被动接受订阅的数据。 3 静态数据复制同步( 具有较高的场地自治性,和较高的数据同步延 迟) 这种方式也可分为两种:a 允许数据订阅者更新数据的静态数据复制 同步。首先要对各个数据订阅场点进行初始化,即将源场点的数据出版传 送到订阅数据的各个场点,然后采用定时机制定时将源场点事务同志中累 计的数据更新分布到各个数据订阅场点进行实施。而其它数据订阅场点也 可以对数据进行更新,更新后也要采用d t c 将数据更新提交到源场点,然 后再由源场点将数据更新分布到所有订阅该数据的各个源场点。在这种机 制下,不仅允许数据出版者对所出版数据进行更新,同时允许数据订阅者 对订阅的数据进行更新。b 不允许数据订阅者更新数据的静态数据复制同 步。首先要对各个数据订阅场点进行初始化,即将源场点的数据出版传送 到订阅数据的各个场点,然后采用定时机制定时更新源场点的数据出版物 并将其分布到各个数据订阅场点进行实施。在这种机制下,仅允许数据出 版者对所出版数据进行更新,而数据订阅者场点仅允许被动接受订阅的数 9 华中科技大学硕士学位论文 据。 4 数据合并复制同步( 具有最高的场地自治性,和最高的数据同步延 迟) 这种方式采用定时机制,将各个高度自治的场点的数据更新,定期分 布到所有副本集合的成员中。首先要对各个数据订阅场点进行初始化,将 源场点的数据出版传送到订阅数据的各个场点,然后采用定时机制定时将 源场点事务日志中累计的数据更新分布到各个数据订阅场点进行实施。而 其它数据订阅场点也可以对数据进行更新,更新后也要定时将事务日志中 累计的数据更新提交到源场点,然后再由源场点将数据更新分布到所有订 阅该数据的各个源场点。在这种机制下,不仅允许数据出版者对所出版数 据进行更新,同时允许数据订阅者对订阅的数据进行更新。 1 3 课题主要研究工作 本课题要求在国产数据库管理系统d m 3 上实现双机热备份子系统,这 是一个软件级的热备份,本文主要是对双机热备份过程中备份和恢复机制 进行研究。由于双机热备份系统是在华中科技大学计算机学院数据库与多 媒体研究所开发的自主版权数据库管理系统d m 3 的基础上研究开发的,由 于d m 3 在体系结构、存储管理、索引机制等方面已形成一定框架,本课题 的研究是在d m 3 的基础上,利用现有系统,对原有系统功能进行扩充和升 级改进a 它为d m 3 数据库系统提供数据高可用性的功能,增强抗风险能力。 热备份子系统以接近实时的速度将用户的数据从工作数据库备份到一台备 用数据库服务器上,并可以在工作数据库故障时快速切换到备用数据库, 接替故障数据库继续工作,减少系统的中断时间,提高系统的可用性。 概括来说,本课题的主要研究工作包括3 个方面。 1 分析双机热备份的需求以及在d m 3 上实现双机热备份遇到的问题, 在d m 3 数据库系统的基础上设计一个软件级别的双机热备份解决方案。 2 分析通常的解决数据一致性的方法,提出双机热备份系统的数据一 致性方案。针对备份数据库和主数据库同步的问题,将采用同志传输来保 一_ 1 0 华中科技大学硕士学位论文 证同步,并为这种同步方式设计日志传递服务。为了解决数据库的同步和 性能之间的冲突,为主服务器设定了不同的工作模式,并给出了算法和分 析。 3 深入研究了热备份系统中主机故障时,主从数据库服务器的切换问 题。通过一个服务器状态检测的方式来判断备份服务器何时接管原主服务 器的工作,接着给出了备份机的恢复算法,以保证备份机能够正常的接管。 2d m 3 双机热备份系统设计 本章首先对d b m s 对一些重要的故障模式所采取的对策和解决方案进 行分析。对系统的备份功能和恢复功能进行了详细的需求分析。并在此基 础上提出了d m 3 的双机热备份模型。 2 1 故障模式 在数据库被查询和更新时可能发生多种多样的问题,范围从键盘输入 错误数据到存储数据库的磁盘所在房间发生的爆炸。还有介质故障,灾难 性故障,系统故障 3 9 1 。 对于数据输入错误,现在的d b m s 提供了许多的软件机制来捕捉那些 可被检测到的输入错误。s q l 2 和s q l 3 标准以及所有流行的s q l 实现都 为数据库设计者提供了在数据库模式中引入约束的方法,还可采用触发器 的方式来对数据输入进行约束。 对于介质故障,可以采用某种r a i d 模式,维护一个备份,或者联机 保存数据库的冗余拷贝。对于维护个备份,将数据库在诸如磁盘或光盘 这样的介质上进行一个拷贝。周期性地创建备份,可以是完全的或增量式 的,存储在远离数据库自身的某个安全的距离以外。备份和冗余分粕式拷 贝的方法也可以用来防止灾难性故障。 系统故障是导致事务状态丢失的问题。事务是指查询和修改数据库的 进程。事务和其他任何程序一样执行系列步骤:通常这些步骤中的一部 分将修改数据库。每个事务有一个状态,代表陔事务中到目前为止已发生 了什么。状态包括所有执行事务代码中的当前位置和所有以后将会需要的 事务局部变量的值。 典型的系统故障包括掉电和软件错误。因为事务的各个步骤是在主存 华中科技大学硕士学位论文 中进行的,所以系统故障会导致事务状态的丢失。和磁盘不同,内存是“易 失性,的,掉电会导致主存中的内容消失,而磁盘上的( 非易失性的) 数 据完好无损。同样的,一个软件错误可能覆盖住内存的一部分,其中有可 能包括构成程序状态的值。 当主存丢失时,事务状态就丢失了,我们不能再确定事务的哪些部分 ( 包括它对数据库的修改) 已经进行。重新运行事务不一定能修复问题。 例如,如果事务必须将数据库中的某个值加1 ,而我们并不知道是否应该 再重复加l 。解决由系统错误所引起的问题的基本方法是在分离的、非易 失的日志中记录所有的数据库更新,对于双机热备份系统还要加上恢复。 实现的过程中要保证这样的日志记载能以一种不受干扰的方式进行,其机 制非常复杂【4 0 t 4 1 1 。 2 2 系统需求分析 双机热备份作为数据库系统的一个备份恢复子系统,它提供的功能与 系统故障的模式有着很大的关系。以上这些故障,对数据库造成的直接后 果就是数据丢失。针对双机热备份系统,由于它由一个主数据库和一个备 份数据库组成,与单机系统在结构和功能上都存在区别,所以对故障的处 理有它自己特殊的需求。在双机热备份系统中需要使用联机备份的方式。 大量并发事务的存在给联机备份带来了很多问题,突出的就是如何保证备 份的一致性,以便利用该备份重建一个致的数据库。并发事务也给双机 热备份系统带来了同样的问题,而且在双机热备份系统中,还要考虑到如 何保持备份数据库和主数据库的数据同步,即主从数据库一致性的问题。 而且两个数据库的同步必然会影响到主数据库的运行性能,两者之间存在 着冲突。由于主从数据库的状态可能不完全一致,因此在需要从数据库接 替主数据库工作之前,必须进行角色转移处理,减少数据库状态的差异, 减少数据的丢失。这些都是系统要解决的问题,归纳为以下几个方面。 一一 _ 华中科技大学硕士学位论文 1 数据库一致性问题: 2 主从数据库一致性问题: 3 一致性和系统性能冲突问题: 4 主从数据库转换问题。 2 2 1 数据库一致性问题 事务( t r a n s a c t i o n ) 是用户程序在d b m s 中的一个执行,它是d b m s 中 并发控制和恢复功能的中心。包括数据库存取操作的程序执行称作数据库 事务,或简单的称之为事务。 为了保证数据库的完整性,d b m s 必须要维护事务的四个重要的性质。 1 独立性( i s o l a t i o n ) 。用户完成一个事务不需要考虑其它并发执行事 务的影响,也就是说,即使是在d b m s 将这些并发事务交叉在一起交替执 行时也是如此。 2 原子性( a t o m a t i c ) 。事务的动作或者是全部被执行,或者是全部都 没有执行,用户不必担心不完全事务的影响,即使当系统故障发生时。保 证原子性的基本思想是:对于事务要执行写操作的数据项,数据库系统在 磁盘上记录其旧值,而如果事务不能完成执行,旧值将被恢复,好像事务 从未执行。保证事务的原子性是通过数据库系统的事务管理部件来处理的。 3 持久性( d u r a b i l i t y ) 。一旦d b m s 通知用户事务已经成功完成,它 的效果就应该持久。 4 一致性( c o n s i s t e n c y ) 。当有多个事务同时在系统中并发执行时,用 户可以认为这些并发事务的执行效果与事务是一个接一个顺序执行的效果 一致。这种性质被称为事务的可串行性( s e r i a l i z a t i o n ) 。这种可串行化的并 发执行,是由数据库系统的并发控制机制来完成,用以保证并发事务执行 时数据库状态的一致性。 上述保证数据一致性时,都是假定事务是在正常执行结束的前提之下。 但是,事务可能会因为多种原因不能完成。导致事务不能完成的原因有三 1 4 华中科技大学硕士学位论文 种。第一,d b m s 由于执行某些异常原因使事务夭折( a b o r t ) 或不能成功的 终止,如果事务是由于d b m s 的内部原因而夭折,它将会被自动的重启动 或者重执行。第二,当一个或多个事务正在执行时,系统可能崩溃( 例如 掉电) 。第三,事务可能遇到了某个没有预期到的情况( 例如,读到一个不 期望的数值,或不能存取某个磁盘) ,从而决定天折( 例如终止本事务的执 行) 。当然,由于用户认为事务是原子的,所以当事务被在中间中断时,就 使数据库处于一个不一致状态。于是,d b m s 必须寻找一种方法去消除这 部分事务执行对数据库的影响,也就是说,它必须保证事务的原子性,或 者使事务的所有动作都执行,或者使事务的所有动作一个也不执行。d b m s 是通过撤除不完全事务操作的方法来保证事务的原子性。 数据库一致性是指如果一个数据库中的持久数据满足所有数据库模式 和数据库上定义的约束条件,则称数据库是一致的。数据库的致性要求 所有事务的执行都要满足事务的a c i d 性质,联机备份把备份开始时刻作 为一个参考点,以此为参考备份数据库中的所有数据块。由于联机备份开 始的时刻可能有活动的事务存在,这些活动事务对数据库的修改可能部分 已写到磁盘,而另一部分修改可能在共享内存中或还未执行。这样备份下 来的数据中就含有数据库中部分提交的数据,因此用此备份恢复的数据库 是一个不一致的数据库,需要采取措施保证数据库的一致性。 2 2 2 主从数据库一致性问题 数据库备份是数据库保护策略的一个重要组成部分,备份与恢复对于 保持系统稳定性至关重要。为了提高数据库系统的高可用性,提出了联机 备份的要求。 在允许并发访问的情况下,两台独立的服务器接收同样的并发请求时, 相同的请求到达每个服务器的时间是随机的,最终请求命令的在两台服务 器上的执行顺序是不确定的,从而会导致两台数据库内容的不一致。 在双机热备份系统中需要使用联机备份的方式。大量并发事务的存在 华中科技大学硕士学位论文 l i _ _ _ _ i = t = 目自目_ l _ l _ _ _ i _ _ l _ _ _ l _ _ _ _ # _ 给联机备份带来了很多问题,突出的就是如何保证备份的一致性,以便利 用该备份重建一个一致的数据库。并发事务也给双机热备份系统带来了同 样的问题,而且在双机热备份系统中,还要考虑到如何保持备份数据库和 主数据库的数据同步,即主从数据库一致性的问题。 在数据库应用系统中,通常是多用户同时进行操作,系统并行执行用 户命令。给定一组指令,按照不同的顺序在同一数据库状态初态下开始执 行,当全部执行成功后,不同的顺序得到最终的数据库状态是不一致的。 如在在多用户并发连接数据库时: 当前状态单价= 5 0 用户a :单价增加5 0 用户b :单价增加2 0 两条指令将同时发往主、从数据库,并在两个服务器上均并发执行, 数据库上最终执行顺序可能为a b ,也可能为b a ,如果出现: 主服务器执行a 、b :单价= 1 2 0 从服务器执行b 、a :单价= 1 l o 则主、从服务器数据库状态不一致。 热备份的过程就是备份数据库中所有数据的过程,在此过程中主数据 库服务器还要处理大量的数据,进行读写操作。一致性问题是双机热备份 系统中最重要的问题:备份数据库的恢复机制既可以产生一个一致的备份 拷贝,也可以是一个不一致的备份拷贝。顺序保存备份保持了事务在主机 的提交顺序。非顺序保存备份提交事务顺序可能与主机上的提交顺序不同。 非顺序保存的备份通常易于维护,但是它可能导致两个备份的不一致,所 以在实际应用中并不广泛使用。在许多情况下,我们对数据一致性有很高 的要求,因为应用程序通常是在假定它所使用的数据是正确的条件下进行 写操作的,而且这些程序中的错误处理并不全面。在发生灾难的情况下, 备份机接管事务处理,如果备份不能保证一致性,应用程序可能就不得不 使用不一致的拷贝数据。不一致性可能导致事务处理的延迟甚至崩溃。因 1 6 华中科技大学硕士学位论文 此,破坏了数据库的一致性,会危及数据库的连续运行,必须要避免这种 情况。 2 2 3 一致性和系统性能的冲突问题 当用户对数据库进行操作时,双机热备份系统对打开的数据库可以进 行联机备份。在联机备份的过程中数据库活动可能改变磁盘上的许多数据 库元素。如果需要从备份中恢复数据库,日志项可以用来整理数据,使数 据库达到一个一致的状态。 对于双机热备份系统来说,对数据库的状态需要保存到一个最近的状 态,光有备份拷贝是远远不够的,这种情况下,就要使用到备份拷贝以来 的日志了。保留的日志可以用来纠正主数据库和备份数据库之间的差异。 我们不光要保存这个日志,并且要确保在故障之后这个日志仍然存在。所 以为了防止日志的丢失,在日志几乎刚刚创建时就将它的一个拷贝传送到 备份服务器上。在备份服务器上,就可以使用备份和日志的拷贝进行恢复, 最好的状态是恢复到日志最后被传送的那一时刻。 主数据库采用两段式提交的方法,可以保证备份数据库与主数据库高 度的一致性。这种做法是,主数据库将日志传送到备份数据库,接到备份 数据库反馈的确认信息后,才将数据改动更新到磁盘上,同时备份数据库 也在根据接收到的日志进行r e d o 操作,这样,备份数据库得到的数据和主 数据库一致。 在日志文件很小、主从数据库之间网络速度很快并且畅通无阻的情况 下,以上所描述的方式得到的结果和执行效率都是很满意的。但是在实际 应用中,这只能是一种理想状态。遇到长的事务或者日志文件很大的情况, 主数据库需要耗费很长的时间来传送日志,在这个过程中,主数据库上的 事务等待提交的时延太大。当网络阻塞或者网络故障的时候,主数据库不 能成功的把日志文件传送到备份数据库,或者备份数据库接收到了日志却 不能成功确认信息发送到主数据库,根据理想状态的约定,此时主数据库 华中科技大学硕士学位论文 就要一遍一遍的传送日志,直到成功为止,否则主数据库上的事务无法提 交。当备份服务器出现故障,也会出现上述的情况。这样严重的影响了主 数据库的效率。 主数据库要处理用户的请求,进行数据库操作和处理,还要与备份数 据库进行信息传送和通讯,都会占用系统中许多c p u 及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论