有某数据库系统在运行过程中发生了系统故障,发生故障时正在运行事务t1和t2。进行故障恢复时,在日志文件中发现有t1的事务开始记录而没有结束记录,有t2的开始记录和结束记录,但t2对数据库的修改还没有写

答案大类: 小类: 2026-01-29 17:05:51

有某数据库系统在运行过程中发生了系统故障,发生故障时正在运行事务t1和t2。进行故障恢复时,在日志文件中发现有t1的事务开始记录而没有结束记录,有t2的开始记录和结束记录,但t2对数据库的修改还没有写到数据库中,从检查点开始正向扫描日志文件()。

A、扫描到t1时,直接重做t1,扫描到t2时,将t2直接撤销

B、扫描到t1时,将t1加入重做队列,扫描到t2时,将t2加入撤销队列

C、扫描到t1时,直接撤销t1,扫描到t2时,将t2直接重做

D、扫描到t1时,将t1加入撤销队列,扫描到t2时,将t2加入重做队列

正确答案:D

答案解析:由事务的原子性可知,一个事务对数据库的所有操作是一个不可分割的工作单元,要么全部执行要么一个也不执行,由于t1事务没有结束记录,应该加入撤销队列,而t2有开始和结束记录却没有写入数据库,应该加入重做队列。

版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: