共用方式為


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

適用於:SQL Server

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

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

注意

如果長時間執行的交易造成過多 UNDO 次,則可以超過指定資料庫的目標復原時間設定所指定的上限。

局限性

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

當資料庫接收到大量作業以致產生髒頁面時,啟用間接檢查點後,背景寫入器就可以開始積極地將髒緩衝寫入磁碟,以確保執行復原所需的時間在資料庫設定的目標復原時間內。 這會導致某些系統上的額外 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 (舊版的預設值),便指定發生損毀時,指定之資料庫的復原時間上限。

    • 指出 target_recovery_time 應以秒數表示。

    • 分鐘

      指出 target_recovery_time 應以分鐘數表示。

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

    ALTER DATABASE AdventureWorks2022
    SET TARGET_RECOVERY_TIME = 60 SECONDS;