The invention discloses a database instance recovery method and device. It involves database technology and solves the problem of low efficiency in case recovery. The method includes: reading and parsing REDO logs to determine data pages that need to be redone when instance recovery is needed; dividing the REDO logs into multiple queues, configuring independent threads for each queue, and concurrently completing the redo operations of data pages that need to be redone for each queue. The technical scheme provided by the invention is suitable for large general database and achieves an efficient recovery example.
【技术实现步骤摘要】
一种数据库实例恢复方法和装置
本专利技术涉及数据库技术,尤指一种数据库实例恢复方法和装置。
技术介绍
数据库管理技术作为管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,其最主要的功能之一是安全可靠的保证数据的正确性、有效性和可用性。但是由于各种原因,数据库中的数据存在着被误删、损坏和篡改的危险,而数据一旦被破坏可能造成无法挽回的损失。因此,如何高效地恢复数据、最大限度减少数据丢失成为当今数据库技术研究领域的热点之一。实例恢复(InstanceRecovery)是指在启动数据库时发现文件不同步,自动利用在线重做日志(ONLINEREDOLOG)中的重做记录对陈旧的数据文件进行恢复的过程。实例恢复主要包括两个重要组成部分:根据重做(REDO)日志进行重做和根据回滚(UNDO)日志恢复事务提交前的状态。如K-DB等数据库以数据页为恢复单元,采用基于日志的恢复方式进行实例恢复,其原有的实例恢复基本框架如图1所示,主要包括三部分:确定实例恢复起点(LSN,LogSequenceNumber,RestartLSN);重做REDO日志;回滚未提交事务。实例恢复的起点由StarlLSN确定。为减少恢复时的重做日志量,可设置CheckPoint检查点进程定期回刷脏页,更新StartLSN。数据库在装载脏页时,在脏页的数据页页头会设置页面第一次变脏日志序列号(FirstDirtyLogSequenceNumber,FDLSN),作为当前数据页第一次变为脏页的时间。检查点进程通过扫描缓存内所有脏页的FDLSN,统计出最小的FDLSN作为数据库StartLSN ...
【技术保护点】
1.一种数据库实例恢复方法,其特征在于,包括:在需要进行实例恢复时,读取并解析重做REDO日志,确定需要重做的数据页面数据页;将所述REDO日志划分为多个队列,为每个队列配置独立线程,多个独立线程并行完成针对各自队列中所述需要重做的数据页的重做操作。
【技术特征摘要】
1.一种数据库实例恢复方法,其特征在于,包括:在需要进行实例恢复时,读取并解析重做REDO日志,确定需要重做的数据页面数据页;将所述REDO日志划分为多个队列,为每个队列配置独立线程,多个独立线程并行完成针对各自队列中所述需要重做的数据页的重做操作。2.根据权利要求1所述的数据库实例恢复方法,其特征在于,所述在需要进行实例恢复时,读取并解析REDO日志,确定需要重做的数据页的步骤之前,还包括:在需要写入回滚UNDO日志时,生成与所述UNDO日志实质涉及修改操作对应的REDO日志。3.根据权利要求1或2所述的数据库实例恢复方法,其特征在于,所述在需要进行实例恢复时,读取并解析REDO日志,确定需要重做的数据页的步骤包括:多线程并行读取REDO日志,提取所述REDO日志中的物理日志记录PLR;根据所述PLR的标示符,对所述PLR进行翻译,转换得到各PLR对应的日志记录LR;将所述LR进行链接,存放在新日志结果节点NLRN数据结构中;将所述NLRN按照事务日志序列号LSN的顺序排序,得到日志结果节点LRN链表;依次检查、解析所述LRN链表中的节点,得到所述需要重做的数据页的标识ID;构建脏页表,在所述脏页表中保存所述需要重做的数据页的标识ID。4.根据权利要求3所述的数据库实例恢复方法,其特征在于,所述将所述REDO日志划分为多个队列,为每个队列配置独立线程,多个独立线程并行完成针对所述需要重做的数据页的重做操作的步骤包括:按照所述LSN的顺序将REDO日志写入多个队列,每个队...
【专利技术属性】
技术研发人员:王文庆,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。