データベースのターゲットの復旧時間の変更 (SQL Server)
適用対象: SQL Server
この記事では、SQL Server Management Studio または Transact-SQL を使って、SQL Server のデータベースのターゲット復旧時間を設定または変更する方法について説明します。 既定では、ターゲットの復旧時間は 60 秒です。データベースで 間接チェックポイントが使用されます。 ターゲットの復旧時間により、このデータベースの復旧時間に上限が設定されます。
この設定はすぐに有効になり、SQL Server の再起動は必要ありません。
Note
ターゲットの復旧時間の設定によって特定のデータベースに対して指定された上限は、実行時間の長いトランザクションによって UNDO が過度に繰り返される場合には超過することがあります。
制限事項と制約事項
間接チェックポイントが構成されたデータベースでオンライン トランザクション ワークロードが生じると、パフォーマンスが低下することがあります。 間接チェックポイントは、ターゲットの復旧時間内でデータベースの回復が完了するように、ダーティ ページの数が特定のしきい値を下回るようにします。 復旧間隔構成オプションでは、ダーティ ページ数を使用する間接チェックポイントとは異なり、トランザクション数を使用して復旧時間を決定します。
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 }
target_recovery_time
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;