第四节 恢复的实现技术 (1) (2)
5.4.2 登记日志文件
一、日志文件的内容
1. 什么是日志文件,日志文件(log)是用来记录事务对数据库的更新操作的文件。
2. 日志文件的格式,以记录为单位的日志文件,以数据块为单位的日志文件。
3. 日志文件内容,各个事务的开始标记(BEGIN TRANSACTION),各个事务的结束标记(COMMIT或ROLLBACK),
各个事务的所有更新操作,与事务有关的内部更新操作,日志文件中的一个日志记录 (log record)。
4. 基于记录的日志文件, 每条日志记录的内容,事务标识,操作类型(插入、删除或修改),操作对象(
记录ID、Block NO.),更新前数据的旧值(对插入操作而言,此项为空值),更新后数据的新值(对删除操作
而言, 此项为空值)。
5. 基于数据块的日志文件, 每条日志记录的内容,事务标识(标明是那个事务),操作对象(记录ID、
Block NO.),更新前数据所在的整个数据块的值(对插入操作而言,此项为空值),更新后整个数据块的值(
对删除操作而言, 此项为空值)。
二、日志文件的用途
1.用途:进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。
2.与静态转储后备副本配合进行介质故障恢复:静态转储的数据已是一致性的数据。如果静态转储完成后,
仍能定期转储日志文件,则在出现介质故障重装数据副本后,可以利用这些日志文件副本对已完成的事务进行
重做处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。
3.介质故障恢复:LOG FILE + 动态转储后备副本,动态转储数据库:同时转储同一时点的日志文件,后
备副本与该日志文件结合起来才能将数据库恢复到一致性状态。利用这些日志文件副本进一步恢复事务,避免
重新运行事务程序。
三、登记日志文件的原则
为保证数据库是可恢复的,登记日志文件时必须遵循两条原则——登记的次序严格按并行事务执行的时间
次序,必须先写日志文件,后写数据库。写日志文件操作:把表示这个修改的日志记录,写到日志文件。写数
据库操作:把对数据的修改写到数据库中。
|