7. SQL Server的事务处理和检查点 �� �� SQL Server的检查点机制是自动把已完成的事务从高速缓存区写入磁盘数据库的一种方法。SQL Server提供有两种方法建立检查点:SQL Server自动执行的检查点;或由数据库所有者或DBA调用CHECKPOINT强制执行的检查点。因为事务日志记录所有更新事务,在电源掉电,系统软件故障,在客户提出或事务撤销请求的事件下,SQL Server可以自动恢复数据库。 ��图7-21说明SQL Server的事务提交、恢复和检查点发生的过程。图中有5个事务,事务1、2、3在检查点之前开始,事务4、5在检查点之后开始。事务1、2、4在系统故障之前提交,事务3和5在系统故障时未提交。故障处理完后,系统自动恢复数据库的过程如下: ��● 事务1在检查点之前提交;已写入外存数据库不用恢复; ��● 事务2和事务4在检查点后提交;修改的数据没有写入外存数据库,因此需要重做Redo;事务3和事务5在系统故障时尚未提交;要撤消Undo。 �� 可以注意一下,每当SQL Server突然发生瘫痪时,重新启动通常需要花费较长的时间。这是由于SQL Server需要前后滚动事务到最后一个检查点。当SQL Server执行完该项工作之后,数据库恢复到最后一个检查点时所记录的一致性状态。 图7-21 SQL Server的事务提交和恢复 |