面试题答案
一键面试- 保证数据一致性方面:
- 原子性(Atomicity):事务日志记录了事务执行过程中的所有操作。当事务执行时,每个操作被记录在日志中,若事务执行过程中出现故障,数据库可以根据日志回滚未完成的事务,确保事务要么全部成功,要么全部失败。例如在转账事务中,从账户A扣款和向账户B加款的操作记录在日志里,若加款操作失败,可依据日志回滚扣款操作,保证原子性。
- 一致性(Consistency):事务日志协助维持数据库的一致性状态。通过记录事务对数据的修改,确保在事务完成后数据库处于一致状态。如果事务违反了一致性约束(如违反唯一性约束),可利用日志回滚事务,使数据库回到事务开始前的一致状态。
- 隔离性(Isolation):在分布式环境中,多个事务可能并发执行。事务日志为实现隔离性提供支持,通过记录事务的操作顺序和状态,数据库系统可以采用不同的并发控制机制(如锁机制、时间戳排序等),确保并发事务之间相互隔离,互不干扰。例如基于日志的并发控制可以确保一个事务对数据的修改在其提交前对其他事务不可见。
- 系统恢复方面:
- 崩溃恢复:当系统发生崩溃时,数据库可利用事务日志进行恢复。数据库管理系统会扫描日志,重做已提交事务的操作,回滚未提交事务的操作。日志记录了事务开始、结束以及中间的所有修改,通过这种方式使数据库恢复到崩溃前的状态。
- 介质恢复:若存储介质(如磁盘)出现故障导致数据丢失,在有备份的情况下,可先恢复备份数据,然后利用事务日志将备份恢复到故障前的状态。事务日志记录了从备份时间点到故障时间点之间的所有数据库修改,通过重放这些日志操作,可使数据库恢复到接近故障前的状态。