在修改数据库时,如果先对外存的数据库进行了修改,而未对外存的日志文件进行修改,若此时系统出现了故障,那么系统恢复时( )。

admin2009-02-19  22

问题 在修改数据库时,如果先对外存的数据库进行了修改,而未对外存的日志文件进行修改,若此时系统出现了故障,那么系统恢复时(    )。

选项 A、不可以执行UNDO,也不可以执行REDO
B、不可以执行UNDO,但可以执行REDO
C、可以执行UNDO,也可以执行REDO
D、可以执行UNDO,但不可以执行REDO

答案2

解析 为保证对故障恢复的支持,登记日志记录时必须遵循以下原则:登记的顺序严格按照事务的并发执行中各操作所发生的实际顺序;必须先把日志记录写到外存的日志文件中,再把相应的数据库修改写到外存的数据库中。这称作先写日志的原则,是为了发生故障后保持数据库的原子性和持久性所必须遵循的原则。这样做法的原因是把日志记录写到外存的日志文件中和把数据库修改写到外存的数据库中是两个不同的写操作,有可能在这两个操作之间发生故障,即这两个写操作只完成一个。如果先写了数据库修改,而在日志文件中没有对这个修改的记录,那就没有办法进行UNDO了。而如果先写日志记录,但没有修改数据库,那么就既可以进行 UNDO,也可以进行REDO。
转载请注明原文地址:https://kaotiyun.com/show/eacZ777K
0

最新回复(0)