sql server在启动时如遇到错误就进行事物回滚,通过检查点回滚到上一个正确的检查点

解决方案 »

  1.   

    每个 Microsoft® SQL Server™ 2000 数据库都有一个事务日志记录数据库内的数据修改。日志记录每个事务的开始和结束并将每个修改与一个事务相关联。SQL Server 实例在日志中存储足够的信息以恢复(前滚)或撤消(回滚)构成事务的数据修改。日志中的每条记录都由一个唯一的日志序号 (LSN) 标识。事务的所有日志记录都链接在一起。
      

  2.   

    SQL Server 实例在事务日志中记录多种不同类型的信息。SQL Server 2000 实例主要将所执行的逻辑操作记入日志。重新应用操作将前滚修改,反向执行逻辑操作将回滚修改。每个 SQL Server 实例都控制将修改从其数据缓冲区写入磁盘的时间。SQL Server 实例可以将修改在缓冲区内高速缓存一段时间以优化磁盘写入。包含尚未写入磁盘的修改的缓冲区页称为脏页。将脏缓冲区页写入磁盘称为刷新页。对修改进行高速缓存时,务必注意确保在将相应的日志映像写入日志文件之前没有刷新任何数据修改。否则将产生不能在需要时进行回滚的修改。为确保能恢复所有修改,SQL Server 实例使用预写日志,这意味着所有日志映像都在相应的数据修改前写入磁盘。提交操作将事务的所有日志记录强行写入日志文件,以使事务可以完全恢复,即使服务器已经关闭。只要所有日志记录都已刷新到磁盘,提交操作便不必将所有修改的数据页都强行刷新到磁盘。系统恢复可以只使用日志记录前滚或回滚事务。
      

  3.   

    begin tran
    ... 
    commit tran
    是否规范