检查点

更新时间:2023-12-24 14:03

检查点种类包含四种,分别为MMDB的检查点、非失真检查点、失真检查点和日志驱动检查点。

检查方式

软件开发的项目中,在规定的时间间隔内对项目进行检查,比较实际与计划之间的差异,并根据差异进行调整,一般每周一到二次。

数据库恢复技术中定义

具有检查点的恢复技术:在日志文件中增加一类新的记录--检查点记录(checkpoint),增加一个重新开始文件,并让恢复子系统在登录日志文件期间动态地维护日志。

这样做的原因: 一、 利用日志技术进行数据库恢复时,需要检查所有日志记录。存在两个问题:

一是搜索整个日志将耗费大量的时间。

二是需要REDO处理很多已经将操作结果写到数据库中的操作,浪费了大量时间。

二、检查点记录的内容包括:

1.建立检查点时刻所有正在执行的事务清单。

2.这些事务最近一个日志记录的地址。

三、在检查点维护日志文件

1. 将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上。

2. 在日志文件中写入一个检查点记录。

3. 将当前数据缓冲区的所有数据记录写入磁盘的数据库中。

4. 把检查点记录在日志文件中的地址写入一个重新开始文件。

MMDB的检查点(Checkointing)

快速的恢复高度依赖于最近检查点(Pu一to一daet)的存在。检查点减少了在MMDB崩溃后系统重启时所要做的恢复工作量。另一方面,检查点也影响着数据库的处理性能一一尤其是在大容量内存环境下。总不希望在检查点在执行的时候,暂停其他事务的执行。检查点算法需要精心地设计,使得它即对事务的正常处理影响很小,又要在系统崩溃的时候能够有效地恢复系统。MMDB系统的检查点与DRDB系统的检查点不同。DRDB的检查点的设计思想是在一个时间点上,让未提交的事务和己提交的事务保证其日志记录都被回写到磁盘上。而MMDB的检查点的设计思想是在一个时间点上,将内存中的整个数据库或者部分数据库的数据回写到磁盘上,或者以其他的方式,形成在这个时间点上对数据库数据的一个镜象备份。在MMDB的检查点技术可以分为三类:非失真检查点(No一Fuzzzy eheckpointing)、失真检查点(FuzzyCheekpointing)和日志驱动检查点(Log一DrivenCheckpointing)。

非失真检查点(No一fuzzy Checkpointing)

非失真检查点的策略通常都会给事务的处理带来额外的开销;〕这些开销主要来自非失真检查点策略需要为被检查的数据对象加锁来保持事务的一致性。可以用多种不同的策略可以选择。

失真检查点(Fuzzy Checkpointing)

MMDB中的失真检查点F(uzyzChecPkointnig)策略是指检查点程序在对数据做操作时,不需要对数据对象上锁。检查点程序和其他事务并发执行,检查点程序每次只将数据库的一部分脏数据页回写到磁盘上。检查点程序通过向系统日志中写入日志记录,来和其他事务保持同步。

日志驱动检查点(Log一DrivenCheckpointing)

在失真检查点和非失真检查点中需要将内存数据库整个或者部分地复制到磁盘上,而日志驱动检查点则是在前一次检查点所产生的数据库镜象的基础上,根据日志更新该镜象,产生新的镜象。这种检查点策略能够适用于将数据库镜象备份到远程主机上。因为日志的数据量小于数据库的大小,更加利于网络传输。每次做检查点时,将日志传送给远程主机,然后在远程主机上根据日志回放更新动作,产生出新的数据镜象。但是,这种策略也有缺陷,如果MMDB在事务吞吐量很大的情况下,会产生出大量的日志记录。这些日志将频繁地驱动检查点程序更新位于磁盘上的备份数据镜象,牵涉到大量的磁盘1/0操作,因而会严重降低检查点程序的效率。如果在事务吞吐量很大的情况下,能够控制住日志产生的数量,日志驱动检查点仍是一种不错的检查点策略。本章后半部分所提出的“恢复模型”,其中的检查点策略就属于日志驱动检查点。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}