如果某一事务程序的运行导致服务器重新启动,这类故障属于系统故障,恢复过程中需要根

练习题库2022-08-02  84

问题 如果某一事务程序的运行导致服务器重新启动,这类故障属于系统故障,恢复过程中需要根据日志进行的操作为(  )。A.UNDOB.UNDO和REDOC.REDOD.ROLLBACK

选项 A.UNDO
B.UNDO和REDO
C.REDO
D.ROLLBACK

答案 B

解析 故障导致服务器重启,故障时正在执行的事务的原子性被破坏,即事务没有执行完,其对数据库的部分更新可能已经写入硬盘上的数据库文件,重启后这部分更新使得数据库处于不一致性状态,应对其进行处理,撤销故障时未完成的事务对数据库的更新,使数据库还原到未完成的事务执行前的状态,相当于这些事务没有执行。这种恢复操作借助于日志文件来完成。日志按照时间顺序记录了所有事务对数据库的更新操作,而且在对数据库的更新之前已被写入硬盘。可以逆向扫描日志记录,找出未完成的事务,将其对数据库的修改还原,称为Undo操作。
同时,故障发生时已经完成提交的事务,对其数据库的修改可能还在内存中的I/O缓冲区中,没来得及写入硬盘,重启后这部分修改会丢失,破坏了事务的持久性。同样需要借助于日志文件,找到故障前已完成的事务,将其对数据库的更新重新做一遍,即可完成对应事务的更新操作。这一操作称为Redo操作。
即需要REDU和UNDO操作,选择B选项。
转载请注明原文地址:https://tihaiku.com/congyezige/2419985.html

最新回复(0)