更改数据库的目标恢复时间 (SQL Server)

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中设置更改SQL Server数据库的目标恢复时间。 默认情况下,目标恢复时间为 0,数据库使用“自动检查点” (由 recovery interval 服务器选项控制)。 如果将目标恢复时间设置为大于 0,数据库将使用“间接检查点” 并为此数据库建立恢复时间上限。

注意

如果长时间运行的事务导致过多 UNDO 时间,则可能超过给定数据库的目标恢复时间设置为该数据库指定的上限。

开始之前

注意

为间接检查点配置的数据库上的联机事务工作负荷可能导致性能下降。 间接检查点确保损坏页的数量低于特定阙值,以便在目标恢复时间内完成数据库恢复。 与利用损坏页数量的间接检查点相反,恢复间隔配置选项使用事务数量来确定恢复时间。 当在接收大量 DML 操作的数据库上启用了间接检查点时,后台写入线程可以开始积极刷新磁盘的脏缓冲区,以确保执行恢复所需的时间在数据库所设目标恢复时间范围内。 这可能造成某些系统上出现额外的 I/O 活动,如果磁盘子系统在 I/O 阙值之上或附近运行,则这会导致性能瓶颈。

安全性

权限

需要对数据库拥有 ALTER 权限。

使用 SQL Server Management Studio

更改目标恢复时间

  1. 在“对象资源管理器”中,连接到一个 SQL Server 数据库引擎实例,并展开该实例。

  2. 右键单击要更改的数据库,然后单击 “属性” 命令。

  3. “数据库属性” 对话框中,单击 “选项” 页。

  4. “恢复” 面板的 “目标恢复时间(秒)” 字段中,指定要作为此数据库恢复时间上限的秒数。

“使用 Transact-SQL”

更改目标恢复时间

  1. 连接到数据库所在的 SQL Server 实例。

  2. 按如下所示使用以下 ALTER DATABASE语句:

    TARGET_RECOVERY_TIME =target_recovery_time { SECONDS | MINUTES }

    target_recovery_time
    大于 0(默认值)时,指定在发生崩溃的情况下指定数据库的恢复时间上限。

    SECONDS
    指示 target_recovery_time 表示为秒数。

    MINUTES
    指示 target_recovery_time 表示为分钟数。

    以下示例将 AdventureWorks2012 数据库的目标恢复时间设置为 60 秒。

    ALTER DATABASE AdventureWorks2012 SET TARGET_RECOVERY_TIME = 60 SECONDS;  
    

另请参阅

数据库检查点 (SQL Server)
ALTER DATABASE SET 选项 (Transact-SQL)