四巨头第十五周学习笔记

 

 

 

事物日志

建立冗余数据最常用的技术是数据转储和登记日志文件(logging)。每个数据库都有事物日志,用于记录所有事物及事物对数据库所做的修改。事物日志可用于恢复数据库。

1.数据转储:数据库恢复中采用的基本技术

(1)转储可分为:静态转储和动态转储。

(2)必须把转储期间各事物对数据库的修改活动登记下来,建立日志文件(log file)。

(3)数据转储可以分为以下四种:动态海量转储,动态增量转储,静态海量转储和静态增量转储。

 

2.登记日志文件

日志文件是用来记录事物对数据库的更新操作的文件。不同数据库系统采用的日志文件格式并不完全一样。概括起来日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。

对于以记录为单位的日志文件,日志文件中需要登录的内容包括为:

(1)各个事物的开始(BEGIN TRANSACTION)标记。、

(2)各个事物的结束(COMMIT或ROLLBACK)标记。

(3)各个事物的所有更新操作。

 

这里每个事物的开始标记,每个事物的结束标记和每个更新操作均作为日志文件中的一个日志记录(log record)。每个日志记录的内容主要包括为:

事物标识(标明是哪个事物)

操作的类型(插入,删除或修改)。

操作对象(记录内部标识)

更新前数据的旧值(对插入操作而言,此项为空值)

更新后数据的新值(对删除操作而言,此项为空值)

 

对于以数据块为单位的日志文件,日志记录的内容主要包括事物标识和被更新的数据块。由于将更新前的整个快和更新后的整个块都放入了日志文件中,操作类型和操作对象等信息就不必放入日志记录中了。

3.日志文件的作用

日志文件在数据库恢复中起着非常重要的作用,可以用来进行事物故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。具体作用是:

(1)事务故障恢复和系统故障恢复必须用日志文件。

(2)在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地

复数据库。

(3)在静态转储方式中也可以建立日志文件,当数据库毁坏后可重新装入后援副本

把数据库恢复到转储结東时刻的正确状态,然后利用日志文件把已完成的事务进行重做

处理,对故障发生时尚未完成的事务进行撤销处理。这样不必重新运行那些已完成的事

务程序就可把数据库恢复到故障前某一时刻的正确状态,

4.登记日志文件

为保证数据库是可恢复的,登记日志文件时必须遵循两条原则

(1)登记的次序严格按并发事务执行的时间次序。
(2)必须先写日志文件,后写数据库

把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。所以为了安全,一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。这就是“先写日志文件”的原则。

posted @ 2018-06-18 01:09  一个烤羊腰子  阅读(153)  评论(0编辑  收藏  举报