数据库系统实现(数据文件完整性检查和恢复)

       LOG文件的完整性检查,通过在每次追加页的末尾增加写入检查点,通过检查文件最后的页是否是完整的,达到检查文件的完整性。

        另外一种思路是文件头充当,由于LOG文件时追加方式,可以将PAGE页头作为此页的结束,下一页要写的时,可以直接跳过。直接追加纯数据。此种方式比较简单,属于标记法检查文件大小。

        文件内容的检查,可以检查最后几页数据的校验值,再进行长度的检查后,分别取最后每一页进行CRC32校验, 或者是MD5 128校验 。通过检查,最后确定LOG文件的完整性。一旦有出错的情况,继续向前进行验证,直到找到最后一个完整的PAGE数据,以上是LOG文件的处理过程。

        索引节点文件和索引层文件,索引节点文件是TREENODE的结构文件,描述是组织关系,索引层文件保存是实际的INDEX数据,按层次进行文件名命名。

        对索引节点文件和索引数据文件可以使用标记法来进行写文件的完整性描述,作为第一步的文件校验。第二步可以将LOG文件中最后几页的数据进行检查,看INDEX文件中是否包含,如果包含,证明索引文件数据完整。如果没有的情况下,同样可以使用计数方式进行CHECKPOINT的设置。

       索引节点文件和索引数据文件的一致性,可以通过在文件头通过计数器标记的方式进行,如果计数器值不相同,需要进行数据的同步处理,需要将索引文件中的TREENODE数据导入到索引节点文件。

       HOTKEY数据文件的恢复,同样可以使用标记法进行文件完整性检查的一步,不完整的情况下,简单的做法就是重新在运行中生成,原数据文件作废。

猜你喜欢

转载自blog.csdn.net/DQWKLC/article/details/119145742