[发明专利]写入数据的方法、装置和设备有效
| 申请号: | 201210438296.6 | 申请日: | 2012-11-06 |
| 公开(公告)号: | CN102999564A | 公开(公告)日: | 2013-03-27 |
| 发明(设计)人: | 陈志标;吴程宏 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/14 |
| 代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张耀光 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 写入 数据 方法 装置 设备 | ||
技术领域
本发明涉及数据库技术领域,特别涉及一种写入数据的方法、装置和设备。
背景技术
持久性作为数据库系统的四个基本要素之一,一直是数据库用户关注的热点,持久性技术也一直是数据库厂商的宣传点与竞争点。数据库通过检查点机制,将修改的数据页写入非易失存储设备,结合重做日志,在数据库异常终止的情况下,能够进行恢复。
检查点(checkpoint)是一个数据库事件,发生该事件的时候,后台进程会将脏数据写入到磁盘中,同时会写入一些控制信息等用以备份。当数据库异常终止时,通过磁盘中备份的信息以及重做日志对系统进行恢复。其中,脏数据是指与上一次检查点相比发生变化的数据,即在两次检查点之间被修改的数据。重做Redo日志主要用来记录一些关键信息,包括备份了哪些数据、备份在什么位置等等,通过这些信息可以对数据库进行故障恢复。
检查点技术的关键是保证原子性,如果在这个过程中数据库异常终止,会造成数据库文件被破坏,无法恢复。现有技术采用增量检查点技术,通过把脏数据所在的脏页按照时间排序,分别写入磁盘中,无需一次性将所有脏页都写入,使得检查点过程不再是一个原子操作,随时开始随时结束也不会影响数据的一致性。
但是,上述现有技术在单个脏页写到一半而被破坏的情况还是可能出现,如正在写某个脏页的过程中突然掉电从而对数据库文件造成破坏,影响了数据库中数据的可靠性和持久性。
发明内容
为了提高数据库中数据的可靠性和持久性,本发明实施例提供了一种写入数据的方法、装置和设备。所述技术方案如下:
一方面,一种写入数据的方法,所述方法包括:
在本次检查点启动前,如果与上一次检查点之间有脏数据产生,则记录所述脏数据的信息;
当所述本次检查点启动时,如果上一次检查点记录有脏数据的信息且执行过一次相应的脏数据写入第一检查点文件的操作,则根据所述上一次检查点记录的脏数据的信息将相应的脏数据写入第二检查点文件中;
并且,根据本次检查点记录的脏数据的信息将相应的脏数据也写入所述第二检查点文件中;
其中,所述第一检查点文件与所述第二检查点文件为不同的文件。
第一种实施方式下,根据所述上一次检查点记录的脏数据的信息将相应的脏数据写入第二检查点文件中,包括:
根据所述上一次检查点记录的脏数据的信息,以及所述本次记录的脏数据的信息,判断两次记录的信息是否对应有相同的脏页;
如果是,则在根据所述上一次检查点记录的脏数据的信息获取的相应的脏数据中,将除所述相同的脏页以外的其余脏页写入第二检查点文件中。
第二种实施方式下,所述方法还包括:
预先生成用于记录脏数据的信息的三个队列,并将用于记录本次检查点与上一次检查点之间产生的脏数据的信息的队列设置为当前状态,将其余队列设置为空状态;
相应地,在本次检查点启动前,如果与上一次检查点之间有脏数据产生,则记录所述脏数据的信息,包括:
在本次检查点启动前,如果与上一次检查点之间有脏数据产生,则将所述脏数据的信息记录在所述当前状态的队列中。
第三种实施方式下,当所述本次检查点启动时,如果上一次检查点记录有脏数据的信息且执行过一次相应的脏数据写入第一检查点文件的操作,则根据所述上一次检查点记录的脏数据的信息将相应的脏数据写入第二检查点文件中;并且,根据本次检查点记录的脏数据的信息将相应的脏数据也写入所述第二检查点文件中,包括:
当所述本次检查点启动时,将所述当前状态的队列修改为激活状态,以及将一个空状态的队列修改为当前状态;
如果有队列为已备份状态且与该队列中记录的脏数据的信息相应的脏数据已执行过一次写入第一检查点文件的操作,则根据所述已备份状态的队列中记录的所述脏数据的信息将相应的脏数据写入第二检查点文件中;
并且,根据所述激活状态的队列中记录的所述脏数据的信息将相应的脏数据也写入所述第二检查点文件中;
当所述本次检查点结束时,将所述已备份状态的队列修改为空状态,并将所述激活状态的队列修改为已备份状态。
第四种实施方式下,所述方法还包括:
预先为检查点设置全局序号和局部序号,其中,所述全局序号用于记录检查点的次数,且每次启动检查点时递增,所述局部序号用于记录脏页在哪次检查点被修改,且每次脏页被修改时所述局部序号被赋值为所述全局序号的当前值并被记录在该脏页上;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210438296.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:终端的屏幕亮度调整方法、装置及终端
- 下一篇:热回收式壳管式冷凝器
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





