2.3重做日志文件结构
重做日志文件就是通常所说的日志文件。它主要是记录对数据和回滚文件的物理操作的后映像值,即记录修改后的值。因此重做日志又叫物理日志,日志记录本身无逻辑意义。
(1)重做日志
在对数据文件或回滚文件进行修改时,都要产生对应的重做日志记录。重做日志记录格式如表2.1所示。
表2.1 重做日志记录格式
(2)物理事务
数据库内部的操作往往会产生多条日志记录,如在一个页中插入一条记录最简单的情形下,要产生一条插入新记录的日志记录,一条在页尾修改记录槽的日志记录和一条修改页头记录总数的日志记录。三条日志记录作为一个整体不可分割。因此在恢复过程,需要确定一条日志记录是否应该重做。
物理事务的产生就是为了解决物理日志重做的问题。所有的日志记录都在物理事务提交时写入日志缓冲区,并打上PTX_END(物理事务结束)的标识,这些有物理事务一次提交的日志记录作为一个整体不可分割。在恢复时,首先识别PTX_END,只有一个完整物理事务的日志记录序列才能被重做。
当然物理事务还有其他的功用,这里不作赘述。
(3)日志归档
日志归档实际就是对日志文件进行备份。
数据库要支持7×24小时的运行,日志文件会不断增长。当日志文件回头重新开始写时,新的日志会覆盖老的日志。此时需要进行日志归档,以便系统能还原到系统崩溃的最近时刻。当然如果不进行日志归档也行,但这样降低系统故障的恢复能力。