数据库内的描述信息的恢复和数据的缓存方法及设备技术

技术编号:7539736 阅读:188 留言:0更新日期:2012-07-13 04:16
本发明专利技术提供一种数据库内的描述信息的恢复和数据的缓存方法和设备。该方法包括判断数据库在上次运行后是否正常关闭;如果没有正常关闭,遍历二级缓存内的每个数据块,每个数据块的块头内保存对应的磁盘位置信息;根据所述磁盘位置信息获取磁盘内的数据块;当获取的磁盘内的数据块与对应的二级缓存内的数据块相同时,根据数据块在磁盘内的位置信息和在二级缓存内的位置信息建立描述信息,所述描述信息用于描述数据在磁盘内的位置信息与在二级缓存内的位置信息的对应关系。本发明专利技术实施例可以降低数据库的描述信息在恢复时所需时间。

【技术实现步骤摘要】

本专利技术涉及数据存储
,尤其涉及一种数据库内的描述信息的恢复和数据的缓存方法及设备
技术介绍
目前,数据库一般使用高速存储设备,例如固态硬盘(Solid State Disk, SSD)作为主存的二级缓存,该高速存储设备也可以称为非易失性缓存。数据库对二级缓存的管理方式之一是读缓存,是指将主存中的非脏数据放置到二级缓存中,放置到二级缓存中的数据称为温数据。为了提高查询效率,可以在主存内保存信息,该描述信息用于描述数据在磁盘内的位置与二级缓存内的位置之间的对应关系。通过该描述信息,可以直接从二级缓存内将数据再次读入主存而不需要从磁盘内读取。当数据库重启后,由于主存内的信息是丢失的,需要重新建立上述的描述信息。现有技术中,当数据库重启后,数据库的二级缓存中原来保存的数据都是丢弃的, 需要重新预热数据,即需要重新从磁盘内读取数据块到主存,并从主存置换到二级缓存,以及重新在主存内建立描述信息。现有技术这种重新读取数据、重新建立描述信息的过程需要较长的时间。
技术实现思路
本专利技术实施例提供一种数据库内的描述信息的恢复和数据的缓存方法及设备,降低恢复描述信息时所需的时间。本专利技术实施例提供了一种数据库内的描述信息的恢复方法,包括判断数据库在上次运行后是否正常关闭;如果没有正常关闭,遍历二级缓存内的每个数据块,每个数据块的块头内保存对应的磁盘位置信息;根据所述磁盘位置信息获取磁盘内的数据块;当获取的磁盘内的数据块与对应的二级缓存内的数据块相同时,根据数据块在磁盘内的位置信息和在二级缓存内的位置信息建立描述信息,所述描述信息用于描述数据在磁盘内的位置信息与在二级缓存内的位置信息的对应关系。本专利技术实施例提供了一种数据库内的数据的缓存方法,包括将数据块从磁盘内读入主存内,并记录所述数据块在磁盘内的位置信息;将所述数据块从主存内置换到二级缓存内,并在所述数据块的块头内保存所述数据块在磁盘内的位置信息;将所述数据块在磁盘内的位置信息和在二级缓存内的位置信息之间的对应关系保存在描述信息内。本专利技术实施例提供了一种数据库内的描述信息的恢复设备,包括判断单元,用于判断数据库在上次运行后是否正常关闭;处理单元,用于在所述判断单元判断出没有正常关闭时,遍历二级缓存内的每个数据块,每个数据块的块头内保存对应的磁盘位置信息;根据所述磁盘位置信息获取磁盘内的数据块;当获取的磁盘内的数据块与对应的二级缓存内的数据块相同时,根据数据块在磁盘内的位置信息和在二级缓存内的位置信息建立描述信息,所述描述信息用于描述数据在磁盘内的位置信息与在二级缓存内的位置信息的对应关系。本专利技术实施例提供了一种数据库内的数据的缓存设备,包括读取单元,用于将数据块从磁盘内读入主存内,并记录所述数据块在磁盘内的位直fe息;置换单元,用于将所述数据块从主存内置换到二级缓存内,并在所述数据块的块头内保存所述数据块在磁盘内的位置信息;记录单元,用于将所述数据块在磁盘内的位置信息和在二级缓存内的位置信息之间的对应关系保存在描述信息内。由上述技术方案可知,本专利技术实施例通过在二级缓存内的数据块的块头内保存对应的磁盘位置信息,可以直接根据块头的磁盘位置信息和数据块自身所在的二级缓存的位置信息建立描述信息,而不需要再次读取数据、置换数据和根据置换过程建立描述信息,可以实现描述信息的快速重建,降低描述信息的恢复时间。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术数据库内的描述信息的恢复方法一实施例的流程示意图;图2为本专利技术数据库内的描述信息的恢复方法另一实施例的流程示意图;图3为本专利技术数据库内的数据的缓存方法一实施例的流程示意图;图4为本专利技术二级缓存内的数据块示意图;图5为本专利技术数据库内的数据的缓存方法另一实施例的流程示意图;图6为本专利技术数据库内的描述信息的恢复设备一实施例的结构示意图;图7为本专利技术数据库内的数据的缓存设备一实施例的结构示意图。具体实施例方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。以PostgreSql (以下简称PG)的开源数据库为例,PG中的描述信息具体为哈希表。当数据块从磁盘读入主存后,由于主存空间的限制,可以将一些数据块置换到二级缓存中。当数据块被置换到二级缓存后,数据库的管理模块内可以保存哈希表,用于记录数据块在磁盘内的位置信息与在二级缓存内的位置信息的对应关系。例如,管理模块将磁盘的位置A处的数据块读入主存后,如果将该数据块置换到二级缓存的位置B处,则哈希表中会保存A B的对应关系。这样,当数据库内的数据访问模块发送的数据请求表明需要读取位置A处的数据块后,管理模块可以根据该哈希表从二级缓存内读取数据块到主存内,而不需要再从磁盘中读取数据块,以提高查询效率。另外,上述的根据哈希表从二级缓存内再次读取的数据是指从主存内置换到二级缓存内的非脏数据,即数据从磁盘读取到主存后,在主存内没有被更改后被置换到二级缓存中,这样可以保证磁盘中的数据与二级缓存中的数据的一致性。当数据库关闭或者宕机后,再次重启数据库后,主存一般直接放弃之前的缓存数据。为了提高查询效率可以直接从二级缓存内读取数据而不需要从磁盘内读取,而为了直接从二级缓存内读取数据,首先需要恢复哈希表。图1为本专利技术数据库内的描述信息的恢复方法一实施例的流程示意图,包括步骤11 判断数据库在上次运行后是否正常关闭;其中,数据库在重启后可以通过数据库日志确定上次运行后是正常关闭还是非正常关闭。步骤12 如果没有正常关闭,遍历二级缓存内的每个数据块,每个数据块的块头内保存对应的磁盘位置信息;根据所述磁盘位置信息获取磁盘内的数据块;当获取的磁盘内的数据块与对应的二级缓存内的数据块相同时,根据数据块在磁盘内的位置信息和在二级缓存内的位置信息建立描述信息,所述描述信息用于描述数据在磁盘内的位置信息与在二级缓存内的位置信息的对应关系。例如,扫描二级缓存的B位置处时,得到B位置处的数据块,假设该数据块的块头内包含磁盘的A位置,则获取磁盘的A位置的数据块,之后比较A位置的数据块和B位置的数据块,如果两者相同,则建立A B的对应关系并保存到描述信息内。对于其余位置的数据块采用相同的原理进行处理,得到每个数据块在磁盘内的位置信息和二级缓存内的位置信息的对应关系,进而得到描述信息。另外,当两者不同时,可以放弃对该数据块的对应关系的恢复。另一方面,参见图2,还包括,步骤13 如果数据库上次运行是正常关闭,则可以从持久化设备内获取描述信息,所述描述信息为数据库在上次运行时建立并在正常关闭后由保存到持久化设备中。在数据库正常关闭后,将描述信息从数据库保存到持久化设备中,持久化设备例如为磁盘或非易失性缓存,这个过程可以称为序列化过程;当数据库重启后,数据库从持久化设备中本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:张振龙周帅
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1
相关领域技术