次の方法で共有


データベースのターゲットの復旧時間の変更 (SQL Server)

適用対象:SQL Server

この記事では、SQL Server Management Studio または Transact-SQL を使って、SQL Server のデータベースのターゲット復旧時間を設定または変更する方法について説明します。 既定では、ターゲットの復旧時間は 60 秒です。データベースで 間接チェックポイントが使用されます。 ターゲットの復旧時間により、このデータベースの復旧時間に上限が設定されます。

この設定はすぐに有効になり、SQL Server の再起動は必要ありません。

Note

実行時間の長いトランザクションで過剰な UNDO 時間が発生した場合、そのターゲット復旧時間の設定で指定されたデータベースの上限を超えることができます。

制限

間接チェックポイントが構成されたデータベースでオンライン トランザクション ワークロードが生じると、パフォーマンスが低下することがあります。 間接チェックポイントでは、ダーティ ページの数が特定のしきい値を下回っていることを確認して、データベースの復旧がターゲット復旧時間内に完了するようにします。 復旧間隔構成オプションでは、ダーティ ページ数を使用する間接チェックポイントとは異なり、トランザクション数を使用して復旧時間を決定します。

ダーティ ページを引き起こす多数の操作を受け取るデータベースで間接チェックポイントが有効になっている場合、バックグラウンド ライターは、ダーティ バッファーをディスクに積極的にフラッシュし始め、復旧を実行するために必要な時間がデータベースに設定されているターゲット復旧時間内であることを確認できます。 これにより、特定のシステムで追加の I/O アクティビティが発生する可能性があります。これにより、ディスク サブシステムが 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

      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;