全球旧事资料 分类
并在日志文件中写入一条检查点记录(以便恢复时使用)。当DB需要恢复时,根据日志文件仅对检查后的事务进行REDO、UNDO恢复操作。检查点机制大大减少了DB的恢复时间。
67什么是UNDO和REDO操作?为什么要这样设置?答:REDO处理的方法是:正向扫描日志文件,根据重做队列的记录对每一个重做事务重新实施对数据库的更新操作。UNDO处理的方法是:反向扫描日志文件,根据撤销队列的记录对每一个撤销队列的记录的更新操作执行逆操作。
68COMMIT操作和检查点操作有些什么联系?你认为应该如何恰当协调这两种操作才有利于DB的恢复?答:事务在COMMIT时,事务对DB的更新已提交,但对DB的更新可能还留在内存的缓冲区,在检查点时刻才真正写到磁盘。因此事务的真正结束是在COMMIT后还要加上遇到检查点时刻。
69数据库的并发操作会带来哪些问题?如何解决?答:丢失数据更新问题、读脏数据问题、不可重复读问题。通过加X锁、S锁解决。
610使用X锁和S锁时各有哪些操作?X锁和S锁间是如何协调的?
f答:X锁操作有:XFIND申请加X锁和XRELEASE(解除X锁)。S锁操作有:SFIND申请加S锁、UPDXS锁升级为X锁、SRELEASE解除S锁
S锁可以升级为X锁。
611为什么X锁需保留到事务终点,而S锁可随时解除?答:在一个事务对数据加上X锁后,并且对数据进行了修改,如果过早地解锁,有可能使其它事务读取了未提交的数据(且随后被退回),引起丢失其它事务更新。因此X锁的解除应合并到事务的结束(COMMIT和ROLLBACK)操作中。S锁只允许读数据,所以S锁可以随时解除。
612什么是封锁的粒度?封锁粒度的大小对并发系统有什么影响?答:封锁的粒度封锁对象的大小。封锁粒度与系统的并发度和并发控制的开销密切相关。封锁粒度越大、并发度越小、系统开销越小;封锁粒度越小、并发度越高、系统开销越大。
613在封锁技术中,封锁协议可分哪三个级别?各解决了并发调度中的什么问题?答:一级封锁协议:事务在修改数据前加X锁,直到事务结束才释放。解决了丢失数据更新问题。二级封锁协议:事务在修改数据前加X锁,直到事务结束才释放。事务在读数据前加S锁,读完数据后立即释放S锁。解决了丢失更新问题、读脏数据问题。三级封锁协议:事务在修改数据前加X锁,直到事务结束才释放。事务在读数据前加S锁,直到事务结束时才释放。解决了丢失数据更新问题、读脏数据问题、不可重复读问题。
614试叙述“串行调度”与“可串行调度”的区别。答:如果多个事务依r
好听全球资料 返回顶部