一种支持边服务边恢复的分布式实时数据库故障恢复方法技术

技术编号:2841875 阅读:264 留言:0更新日期:2012-04-11 18:40
一种支持边服务边恢复的分布式实时数据库故障恢复方法。本发明专利技术提供的支持边服务边恢复的基于日志的“识时”动态故障恢复方法(TCDCRS)采用了集成分区日志和短暂日志特性的实时日志模式,同时使用非易失性高速存储设备作为日志存储区,以尽可能地降低系统正常运行时日志代价;在站点发生故障后的恢复策略上,TCDCRS给出了基于分类恢复思想的动态恢复策略,来支持系统边服务边恢复,从而尽可能减少故障站点停止服务的时间。本发明专利技术适用于工业过程控制、电网调度、军事作战指挥系统等,需要分布式实时数据库支持的领域。

【技术实现步骤摘要】

本专利技术属于分布式实时数据库故障恢复领域。当站点故障发生,借助于系统正常运行时记录的日志信息将分布式实时数据库恢复到最近的一致性状态。
技术介绍
一类应用,如工业过程控制、电网调度、军事作战指挥系统等,需要分布式实时数据库的支持。分布式实时数据库是分布式数据库和实时数据库相结合的产物,是事务和数据都可以具有定时限制的分布式数据库。在分布式实时数据库中,事务的定时限制典型地表现为事务有截止期。一个实时事务若在规定的截止期后(超截止期)完成,结果将变得毫无价值(对固实时事务),甚至还可能带来灾难性的后果(对硬实时事务)。分布式实时数据库中数据的定时限制表现为实时数据的有效期,实时数据仅在其有效期内有效,过期的实时数据将变得毫无意义。为了更好地满足事务和数据的定时限制,分布式实时数据库通常需要内存数据库技术提供支持。内存数据库(MMDB)要求数据库工作版本(MDB)常驻内存,外存版本(SDB)作为内存版本的备份。MMDB确保事务执行过程中的所有读、写操作都是针对内存版本,即事务执行过程中无数据I/O。分布式环境本身的复杂性加上内存的易失性和脆弱性,使得相对于基于磁盘的集中式数据库而言,分布式实时数据库发生故障的可能性更大。当系统故障发生,在恢复正常服务前,许多实时事务可能错过它们的截止期,大量实时数据将变得无效。因此故障发生后,能迅速而有效的恢复对分布式实时数据库而言有至关重要的意义,是其具有实用价值、能够可靠地工作的基础和必备条件,也是其能真正进入市场、推广应用的关键。现有的数据库故障恢复方法通常基于传统的“静态”恢复的思想,它要求在整个故障恢复处理过程中停止系统服务,这显然不能满足分布式实时数据库中事务和数据有定时限制的需求。此外,传统的数据库故障恢复方法采用的是顺序持久日志模式,顺序持久日志模式将日志记录存储在单一的日志文件中,单一的日志文件会因为严重的访问竞争而成为系统性能的瓶颈,同时,日志持久存放也导致存储空间的浪费与日志处理时间的增加。因此,现有的数据库故障恢复方法已经不能满足分布式实时数据库高性能的需求。
技术实现思路
本专利技术的目的是解决现有数据库故障恢复方法的低效问题,提供一种适合分布式实时数据库的、支持边服务边恢复的动态恢复方法。本专利技术提供的支持边服务边恢复的分布式实时数据库故障恢复方法,方法包括1)采用集成分区日志和短暂日志特性的实时日志模式即根据事务类的划分策略,将日志存储区分成对应的不同分区,属于不同类别的事务的日志记录被分别存储在不同的日志分区。同时日志记录并不持久保存,在本地模糊检验点执行过程中,一些无用的日志记录被删除。2)存储介质的组织每个站点的存储介质分为三层磁盘存储器、非易失RAM、易失RAM(主存);本地外存数据库(LSDB)被存储在磁盘存储器中;非易失RAM作为日志存储区,对应于规范化分划σ(σ定义在后文中具体给出),整个日志存储区被划分成四个独立的子日志区;本地内存数据库(LMDB)被存储在易失性主存中,并且被分成两个独立的分区关键数据分区和一般数据分区,用来分别存储关键数据类和一般数据类;3)执行频率动态可调的模糊检验点模式采用模糊检验点模式,在检验点触发时机上,不是采用固定时间间隔的周期性触发策略,而是根据日志存储区空间使用率(简记为RLU)是否到达设定的阈值α来决定是否触发检验点。当RLU大于α,检验点被触发执行。α的初始值可根据应用的要求预先设定,在系统运行过程中可通过修改α的值来动态调整检验点执行的频率。4)动态恢复策略在站点发生故障后的恢复处理过程中,采用了基于分类恢复思想的动态恢复处理策略,其关键特征是关键数据类被首先恢复,在恢复一般数据类前恢复站点服务,然后边服务边恢复一般数据类,以最大限度地降低故障站点停止服务的时间。动态恢复策略的具体包括如下步骤①从本地外存数据库(LSDB)中将关键数据类装入主存相应数据分区,本地内存数据库(LMDB);②消除属于关键事务类的夭折的控制事务导致的对外部世界改变,并将关键数据类恢复到最近一致性状态;③恢复故障站点的服务;④从本地外存数据库(LSDB)中将一般数据类装入主存相应数据分区;⑤消除属于一般事务类的夭折的控制事务导致的对外部世界改变,并将一般数据类恢复到最近一致性状态。——上述方法1)中的日志存储区的分划方法如下1)首先将事务集合ST按事务优先级划分成两个子集ST>p={Ti|Pr(Ti)>p,Ti∈ST}和ST<=p={Ti|Pr(Ti)≤p,Ti∈ST},这里,Pr(Ti)表示事务Ti的优先级;显然,{ST>p,ST<=p}为ST的一分划;2)通过适当的调整p值,使得DS(ST>p)∩DS(ST<=p)=,即{ST>p,ST<=p}为ST的一正交分划;其中,DS(ST>p)为属于ST>p中的高优先级事务所存取的数据对象的集合,称DS(ST>p)为关键数据类,称ST>p为关键事务类;DS(ST<=p)为属于ST<=p中的低优先级事务所存取的数据对象的集合,称其为一般数据类,称ST<=p为一般事务类;3)进一步,将ST>p划分成两个或两个以上子集ST>p,>f={Ti|Fr(Ti)>f,Ti∈ST>p}和ST>p,<=f={Ti|Fr(Ti)≤f,Ti∈ST>p},这里,Fr(Ti)代表Ti的估计执行频率,f为一设定的频率值,显然,{ST>p,>f,ST>p,<=f}是ST>p的一个分划;类似地,将ST<=p划分成两个或两个以上子集ST<=p,>f={Ti|Fr(Ti)>f,Ti∈ST<=p}和ST<=p,<=f={Ti|Fr(Ti)≤f,Ti∈ST<=p},显然,{ST<=p,>f,ST<=p,<=f}是ST>p的一个分划;4)令σ={ST>p,>f,ST>p,<=f,ST<=p,>f,ST<=p,<=f},则(根据定理1)σ是一个规范化分划。5)对应于规范化分划σ,将整个日志存储区被划分成四个独立的子日志区关键高频事务类子日志区、关键低频事务类子日志区、一般高频事务类子日志区和一般低频事务类子日志区,分别简记为LSch、LScl、LSgh和LSgl,它们分别用来对应地存储ST>p,>f、ST>p,<=f、ST<=p,>f和ST<=p,>=f事务类的日志记录,即{LSch,LScl,LSgh,LSgl}是关联规范化分划σ的日志存储区的一个分区;将LSch和LScl统称为关键日志区;LSgh和LSgl统称为一般日志区。——其中实时日志记录的类型与结构如图1所示,含义如下1)结合实时提交协议1PRCP,设计五种日志记录类型Begin,Redo,Compensate,Ready和Commit,分别用“B”,“D”,“CP”,“R”和“C”来表示,其中,P-TID表示分布式事务(全局事务)标识,定义为P-TID::=<Cor_Addr,N>,这里,Cor_Addr表示分布式事务的协调者的网络地址;N代表分布式事务的序号,在每个协调者站点,N是单调递增的;2)对于本地事务,P-TID被置为NULL;TID为本地事务或子事务标识,定义为TID::=<Addr,SN>,这里,Addr表示本地事务或子事务所在站点的网络地址;SN表示本地事务或子事务的序号本文档来自技高网
...

【技术保护点】
一种支持边服务边恢复的分布式实时数据库故障恢复方法,其特征是该方法包括:1)采用集成分区日志和短暂日志特性的实时日志模式:即根据事务类的划分策略,将日志存储区分成对应的不同分区,属于不同类别的事务的日志记录被分别存储在不同的日志分区 ;同时日志记录并不持久保存,在本地模糊检验点执行过程中,一些无用的日志记录被删除;2)存储介质的组织:每个站点的存储介质分为三层:磁盘存储器、非易失RAM、易失RAM(主存);本地外存数据库(LSDB)被存储在磁盘存储器中;非易失R AM作为日志存储区,对应于规范化分划σ,整个日志存储区被划分成四个独立的子日志区;本地内存数据库(LMDB)被存储在易失性主存中,并且被分成两个独立的分区:关键数据分区和一般数据分区,用来分别存储关键数据类和一般数据类;3)执行频率 动态可调的模糊检验点模式:采用模糊检验点模式,在检验点触发时机上,不是采用固定时间间隔的周期性触发策略,而是根据日志存储区空间使用率(简记为R↓[LU])是否到达设定的阈值α来决定是否触发检验点。当R↓[LU]大于α,检验点被触发执行;α的初始值可根据应用的要求预先设定,在系统运行过程中可通过修改α的值来动态调整检验点执行的频率;4)在站点发生故障后的恢复处理过程中,采用了基于分类恢复思想的动态恢复处理策略,其关键特征是:关键数据类被首先恢复,在恢复一般数据类前恢复站 点服务,然后边服务边恢复一般数据类,以最大限度地降低故障站点停止服务的时间;动态恢复策略的具体包括如下步骤:(1)从本地外存数据库(LSDB)中将关键数据类装入主存相应数据分区,重建本地内存数据库(LMDB);(2)消除属于 关键事务类的夭折的控制事务导致的对外部世界改变,并将关键数据类恢复到最近一致性状态;(3)恢复故障站点的服务;(4)从本地外存数据库(LSDB)中将一般数据类装入主存相应数据分区;(5)消除属于一般事务类的夭折的控制 事务导致的对外部世界改变,并将一般数据类恢复到最近一致性状态。...

【技术特征摘要】
1.一种支持边服务边恢复的分布式实时数据库故障恢复方法,其特征是该方法包括1)采用集成分区日志和短暂日志特性的实时日志模式即根据事务类的划分策略,将日志存储区分成对应的不同分区,属于不同类别的事务的日志记录被分别存储在不同的日志分区;同时日志记录并不持久保存,在本地模糊检验点执行过程中,一些无用的日志记录被删除;2)存储介质的组织每个站点的存储介质分为三层磁盘存储器、非易失RAM、易失RAM(主存);本地外存数据库(LSDB)被存储在磁盘存储器中;非易失RAM作为日志存储区,对应于规范化分划σ,整个日志存储区被划分成四个独立的子日志区;本地内存数据库(LMDB)被存储在易失性主存中,并且被分成两个独立的分区关键数据分区和一般数据分区,用来分别存储关键数据类和一般数据类;3)执行频率动态可调的模糊检验点模式采用模糊检验点模式,在检验点触发时机上,不是采用固定时间间隔的周期性触发策略,而是根据日志存储区空间使用率(简记为RLU)是否到达设定的阈值α来决定是否触发检验点。当RLU大于α,检验点被触发执行;α的初始值可根据应用的要求预先设定,在系统运行过程中可通过修改α的值来动态调整检验点执行的频率;4)在站点发生故障后的恢复处理过程中,采用了基于分类恢复思想的动态恢复处理策略,其关键特征是关键数据类被首先恢复,在恢复一般数据类前恢复站点服务,然后边服务边恢复一般数据类,以最大限度地降低故障站点停止服务的时间;动态恢复策略的具体包括如下步骤(1)从本地外存数据库(LSDB)中将关键数据类装入主存相应数据分区,重建本地内存数据库(LMDB);(2)消除属于关键事务类的夭折的控制事务导致的对外部世界改变,并将关键数据类恢复到最近一致性状态;(3)恢复故障站点的服务;(4)从本地外存数据库(LSDB)中将一般数据类装入主存相应数据分区;(5)消除属于一般事务类的夭折的控制事务导致的对外部世界改变,并将一般数据类恢复到最近一致性状态。2.根据权利要求1所述的支持边服务边恢复的分布式实时数据库故障恢复方法,其特征是1)中的日志存储区的分划方法如下(1)首先将事务集合ST按事务优先级划分成两个子集ST>p={Ti|Pr(Ti)>p,T∈ST}和ST<=p={Ti|Pr(Ti)≤p,Ti∈ST},这里,Pr(Ti)表示事务Ti的优先级;显然,{ST>p,ST<=p}为ST的一分划;(2)通过适当的调整p值,使得DS(ST>p)∩DS(ST<=p)=,即{ST>p,ST<=p}为ST的一正交分划;其中,DS(ST>p)为属于ST>p中的高优先级事务所存取的数据对象的集合,称DS(ST>p)为关键数据类,称ST>p为关键事务类;DS(ST<=p)为属于ST<=p中的低优先级事务所存取的数据对象的集合,称其为一般数据类,称ST<=p为一般事务类;(3)进一步,将ST>p划分成两个或两个以上子集ST>p,>f={Ti|Fr(Ti)>f,Ti∈ST>p}和ST>p,<=f={Ti|Fr(Ti)≤f,Ti∈ST>p},这里,Fr(Ti)代表Ti的估计执行频率,f为一设定的频率值,显然,{ST>p,>f,ST>p,<=f}是ST>p的一个分划;类似地,将ST<=p划分成两个或两个以上子集ST<=p,>f={Ti|Fr(Ti)>f,Ti∈ST<=p}和ST<=p,<=f={Ti|Fr(Ti)≤f,Ti∈ST<=p},显然,{ST<=p,>f,ST<=p,<=f}是ST<=p的一个分划;(4)令σ={ST>p,>f,ST>p,<=f,ST<=p,>f,ST<=p,<=f},则(根据定理1)σ是一个规范化分划;(5)对应于规范化分划σ,将整个日志存储区被划分成四个独立的子日志区关键高频事务类子日志区、关键低频事务类子日志区、一般高频事务类子日志区和一般低频事务类子日志区,分别简记为LSch、LScl、LSgh和LSgl,它们分别用来对应地存储ST>p,>f、ST>p,<=f、ST<=p,>f和ST...

【专利技术属性】
技术研发人员:肖迎元张桦陈向阳
申请(专利权)人:天津理工大学
类型:发明
国别省市:12[中国|天津]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1