變更資料庫的目標復原時間 (SQL Server)

適用於:SQL Server

此文章說明如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中設定或變更資料庫的目標復原時間。 根據預設,目標復原時間為 60 秒,而且資料庫使用「間接檢查點」。 目標復原時間會建立此資料庫的復原時間上限。

此設定會立即生效,而且不需要重新啟動 SQL Server。

注意

如果長時間執行的交易造成過多的復原次數,可能會超過目標復原時間設定針對給定資料庫所指定的上限。

限制事項

針對間接檢查點 (部分機器翻譯) 設定之資料庫上的線上交易式工作負載可能會發生效能降低。 間接檢查點可確定中途分頁的數目,低於特定臨界值,如此即可在目標復原時間內完成資料庫的復原。 相對於使用中途分頁數目的間接檢查點,復原間隔設定選項會使用交易數目來判斷復原時間。

在接收到大量 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 }

    目標復原時間
    從 SQL Server 2016 (13.x) 開始,預設值為 1 分鐘。 如果大於 0 (舊版的預設值),便指定發生損毀時,指定之資料庫的復原時間上限。

    SECONDS
    指出 target_recovery_time 應以秒數表示。

    MINUTES
    指出 target_recovery_time 應以分鐘數表示。

    下列範例會將 AdventureWorks2022 資料庫的目標復原時間設定為 60 秒。

    ALTER DATABASE AdventureWorks2022 SET TARGET_RECOVERY_TIME = 60 SECONDS;
    

另請參閱