运行中的系统因为故障导致服务器重启,正在执行的事务中断,破坏了事务的原子性,恢复的方法是利用日志进行(请作答此空)操作;而已经提交的事务在故障发生时尚未写入磁盘,破坏了事务的( ),恢复的方法是利用日志进行Redo操作。

2023-09-01

A.Undo
B.Redo
C.CoDunit
D.Rollback

参考答案:A

本题考查故障与恢复的基础知识。故障导致服务器重启,故障时正在执行的事务的原子性被破坏,即事务没有执行完,其对数据库的部分更新可能己经写入硬盘上的数据库文件,重启后这部分更新使得数据库处于不一致性状态,应对其进行处理,撤销故障时未完成的事务对数据库的更新,使数据库还原到未完成的事务执行前的状态,相当于这些事务没有执行。这种恢复操作借助于日志文件来完成。日志按照时间顺序记录了所有事务对数据库的更新操作。而且在对数据库的更新之前已被写入硬盘。可以逆向扫描日志记录,找出未完成的事务,将其对数据库的修改还原,称为Undo操作。同样,故障发生时已经完成提交的事务,其对数据库的修改可能还在内存中的I/O缓冲区中,没来得及写入硬盘,重启后这部分修改会丢失,破坏了事务的持久性。同样借助于日志文件,找到故障前已完成的事务,将其对数据库的更新重做一遍,即可完成对应事务的更新操作。这一操作称为Redo操作。