恢复机制涉及的关键问题有:
1. 如何建立冗余数据:
(1)数据转储(backup)
概念:转储是指数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程;
备用的数据文本称为后备副本(backup)或后援副本。

转储和恢复
上图中:系统在Ta时刻停止运行事务,进行数据库转储;
在Tb时刻转储完毕,得到Tb时刻的数据库一致性副本;
系统运行到Tf时刻发生故障;
为恢复数据库,首先由数据库管理员重装数据库后备副本,将数据库恢复至Tb时刻的状态;
重新运行自Tb~Tf时刻的所有更新事务,把数据库恢复到故障发生前的一致状态。
转储方法:
静态转储:在系统中无运行事务时进行的转储操作;转储开始时数据库处于一致性状态;转储期间不允许对数据库的任何存取、修改活动;得到的一定是一个数据一致性的副本 。
优点:实现简单。
缺点:降低了数据库的可用性,转储必须等待正运行的用户事务结束 ,新的事务必须等转储结束。
动态转储:转储操作与用户事务并发进行;转储期间允许对数据库进行存取或修改。
优点:不用等待正在运行的用户事务结束,不会影响新事务的运行。
动态转储的缺点:不能保证副本中的数据正确有效,例在转储期间的某时刻Tc,系统把数据A=100转储到磁带上,而在下一时刻Td,某一事务将A改为200。后备副本上的A过时了。
海量转储: 每次转储全部数据库。
增量转储: 只转储上次转储后更新过的数据。
海量转储与增量转储比较:从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便;如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。
(2)登记日志文件(logging)
2. 如何利用这些冗余数据实施数据库恢复
(1)日志文件的格式和内容:日志文件(log file)是用来记录事务对数据库的更新操作的文件。日志文件的格式包括以记录为单位的日志文件和以数据块为单位的日志文件。
(2)日志文件的作用:进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。
(3)登记日志文件:为保证数据库是可恢复的,登记日志文件时必须遵循两条原则,登记的次序严格按并发事务执行的时间次序;
必须先写日志文件,后写数据库,写日志文件操作:把表示这个修改的日志记录写到日志文件中。写数据库操作:把对数据的修改写到数据库中。