360oracle数据库故障恢复提醒:系统发生故障后,由于无法确定哪些末完成的事务已更新过数据库,哪些事务的提交结果尚未写入数据库,因此系统重新启动后,就要撤销所有的末完成的事务,重做所有的已经提交的事务。
但是,在故障发生前已经运行完毕的事务有些是正常结束的,有些是异常结束的。所以无须把它们全部撤销或重做。
通常采用设立检查点(checkPoint)的方法来判断事务是否正常结束。每隔一段时间,比如说5分钟,系统就产生一个检查点,做下面一些事情:a,把仍保留在日志缓冲区中的内容写到日志文件中;b,在日志文件中写一个“检查点记录”;c,把数据库缓冲区中的内容写到数据库中,即把更新的内容写到物理数据库中;d,把日志文件中检查点记录的地址写到“重新启动文件”中。