Sql Server 加速数据库恢复特性(此部分介绍来源于微软官方文档)

             加速数据库恢复是sql server 于2019 版本开始引入的一项新特性,简称ADR。

            1、ADR 的主要优势在于:

  • 快速且一致的数据库恢复

    使用 ADR,长时间运行的事务不会影响整体恢复时间,且无论系统中活动事务的数量或大小如何,都可以实现快速且一致的数据库恢复。

     

  • 即时事务回滚

    使用 ADR,事务回滚是即时的,与事务处于活动状态的时间或已执行的更新次数无关。

     

  • 主动日志截断

    即使存在活动且长时间运行的事务,ADR 也会主动截断事务日志,这可以防止其增长失控。

 

           2、如果没有ADR,sql server 恢复模式将遵循分析、重做、撤销3个阶段:

  • 分析阶段

    SQL Server 从上一个成功的检查点(或最早的脏页 LSN)的开头起到末尾,执行事务日志的前向扫描,以确定 SQL Server 停止时每个事务的状态。

     

  • 重做阶段

    SQL Server 从最早的未提交事务起到末尾,执行事务日志的前向扫描,通过重做所有已提交的操作使数据库恢复到崩溃时的状态。

     

  • 撤消阶段

    对于在崩溃时处于活动状态的每个事务,SQL Server 向后遍历日志,从而撤消该事务执行的操作。

         屏幕截图 2023-02-16 094518

          基于次恢复模式设计,sql server数据库从意外中断中恢复所需时间与活动事务运行时间成正比,事务回滚将花费与事务活动相当的时间,此外长时间活动的大事务将导致事务日志不能截断,有消耗尽磁盘空间的风险。

 

         3、ADR 通过完全重新设计数据库引擎恢复过程来解决上述问题:

  • 通过避免以最早的活动事务为起始点/结束点扫描日志,使其保持恒定时间/即时状态。 使用 ADR,仅从上一个成功的检查点 [或最早的脏页日志序列号 (LSN)] 处理事务日志。 因此,恢复时间不受长时间运行的事务影响。
  • 由于不再需要为整个事务处理日志,因此可最大程度地减少所需的事务日志空间。 当检查点和备份出现时,可以主动截断事务日志。

 

         4、ADR 通过SLOG(系统日志流),加速了事务REDO、UNDO:

        屏幕截图 2023-02-16 100054

  • 分析阶段

    除了为非版本控制操作重建 SLOG(系统日志流)和复制日志记录,此过程与传统恢复模式相同。

     

  • 重做阶段

    分为两个子阶段

    • 子阶段 1

      从 SLOG 重做(从最早的未提交事务到上一个检查点)。 重做是一种快速操作,因为它只需要处理 SLOG 中的一些记录。

       

    • 子阶段 2

      从上一个检查点(而不是最早的未提交事务)起的事务日志重做。

     

  • 撤消阶段

    使用 ADR,撤消阶段几乎即时完成 - 通过使用 SLOG 撤消非版本控制操作以及通过具有逻辑还原的持久版本存储 (PVS) 执行行级别基于版本的撤消。

          

       5、 启用ADR:

      ALTER DATABASE dbname SET ACCELERATED_DATABASE_RECOVERY = ON;

posted @ 2023-02-16 10:07  踏雪无痕2017  阅读(170)  评论(0)    收藏  举报