はじめに
SQL Server 2025 の復旧モデルについてざっくりと整理する備忘録です。
改訂履歴
- 2026/10/08 : 初版公開。
本文
1. 概要
復旧モデルは SQL Server がトランザクションログをどのように管理するかを決めるデータベース単位の設定です。SQL Server では INSERT や UPDATE、DELETE などのデータ変更をトランザクションログに記録します。このログを利用することで、障害発生後にバックアップからデータベースを復元し、その後の変更を適用できます。今回の記事では、データベースのトランザクション管理の話は割愛します。
SQL Server の復旧モデルには、次の 3 種類があります。本記事では、それぞれの特徴とバックアップ・リストアとの関係を整理します。
- 単純 (Simple)
- 完全 (Full)
- 一括ログ (Bulk-logged)
2. 単純復旧モデル
単純復旧モデルは、もっともシンプルなモデルです。トランザクションログバックアップを取得できないため、障害発生時にトランザクションログを使ったポイントインタイムリカバリ(ロールフォワード)はできません。そのため、復旧できるのは基本的に取得済みの完全バックアップや差分バックアップの時点までです。最後のバックアップの取得後に発生した変更は失われる可能性があります。したがって、ある程度のデータ損失を許容でき、ポイントインタイムリカバリや高い復旧性を必要としないシステムに適しています。
メリット
トランザクションログバックアップの管理が不要なため、運用の負荷が軽い。
デメリット
最後に取得したバックアップ以降のデータが失われる可能性がある。
3. 完全復旧モデル
完全復旧モデルは、単純復旧モデルよりも復旧性が高いモデルです。トランザクションログバックアップを取得できるため、ロールフォワードができます。つまり、完全・差分バックアップに加えて、トランザクションログを使って障害発生直前など、特定の時点まで復旧できます。データの損失をできるだけ抑えたいシステムに向いています。
メリット
データの損失を最小限に抑えられる。
デメリット
トランザクションログバックアップを管理する必要があり、運用が煩雑になる。
4. 一括ログ復旧モデル
一括ログ復旧モデルは、完全復旧モデルと同様にトランザクションログバックアップを取得できますが、一部の一括操作をログに最小限しか記録しないモデルです。そのため、一括操作を効率よく実行しながら、トランザクションログの肥大化を抑えられます。ただし、最小ログ記録された操作を含むトランザクションログバックアップでは、任意の時点へのポイントインタイムリストアができないなど、復旧方法に制約があります。そのため、完全復旧モデルと同じようにログバックアップを取得できますが、復旧の柔軟性では完全復旧モデルに劣ります。一括ログ復旧モデルの代表的な用途は、大量のデータ操作を行う期間だけ、完全復旧モデルから一時的に切り替える運用です。
メリット
完全復旧モデルと同様にログバックアップを利用した復旧が可能で、一括操作時のログ量を抑えられる。
デメリット
一括操作を行った場合、ポイントインタイムリストアができないことがあり、復旧方法にも制約があるため、完全復旧モデルよりも管理や運用が複雑になりやすい。
おわりに
一括ログ復旧モデルは使ったことがないですね。