變更資料庫的目標復原時間 (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
在 [物件總管] 中,連線至 SQL Server 資料庫引擎的執行個體,然後展開該執行個體。
展開 [資料庫] 容器、以滑鼠右鍵按一下您想要變更的資料庫,然後選取 [屬性] 命令。
在 [資料庫屬性] 對話方塊中,選取 [選項] 頁面。
在 [復原] 面板的 [目標復原時間 (秒)] 欄位中,指定您想要作為此資料庫復原時間上限的秒數。
使用 Transact-SQL
連線到資料庫所在的 SQL Server 執行個體。
使用下列 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;