トランザクション ログのバックアップ (SQL Server)
適用対象: SQL Server
この記事は、完全復旧モデルまたは一括ログ復旧モデルを使用する SQL Server データベースについてのみ扱っています。 この記事では、SQL Server データベースのトランザクション ログのバックアップについて説明します。
少なくとも 1 つの完全バックアップを作成しておかなければ、ログ バックアップを作成できません。 完全バックアップを作成しておくと、いつでもトランザクション ログをバックアップできます。ただし、そのログのバックアップが既に進行中である場合、バックアップを開始できません。
作業損失の可能性を最小限に抑え、トランザクション ログを切り捨てられるように、ログ バックアップを頻繁に行うことをお勧めします。
一般的に、データベース管理者は完全バックアップを定期的に (たとえば週 1 回) 作成しますが、必要に応じて短い間隔で (たとえば 1 日 1 回) 差分データベース バックアップを作成します。 データベース バックアップとは別に、トランザクション ログのバックアップを頻繁に作成します。 最適なバックアップ間隔は、バックアップの種類に応じて、データの重要度、データベースのサイズ、サーバーの作業負荷などの要因によって異なります。 効率的な手法を導入する方法については、この記事の「推奨事項」を参照してください。
一連のログ バックアップの動作
トランザクション ログのバックアップの ログ チェーン のシーケンスは、データのバックアップとは関連がありません。 たとえば、次の一連のイベントが発生したとします。
Time | Event |
---|---|
8:00 AM | データベースのバックアップ。 |
正午 | トランザクション ログのバックアップ。 |
4:00 PM | トランザクション ログのバックアップ。 |
午後 6 時 | データベースのバックアップ。 |
午後 8 時 | トランザクション ログのバックアップ。 |
午後 8 時に作成されたトランザクション ログ バックアップには、午後 4 時から午後 8 時までのトランザクション ログ レコードが含まれています。その間、午後 6 時にはデータベースの完全バックアップが作成されています。 トランザクション ログ バックアップのシーケンスは、午前 8 時に作成された最初のデータベースの完全バックアップから、午後 8 時に作成された最後のトランザクション ログ バックアップまで連続しています。 これらのログ バックアップを適用する方法の詳細については、「トランザクション ログ バックアップの適用 (SQL Server)」の例を参照してください。
推奨事項
トランザクション ログが破損すると、前回の有効なバックアップ以降に行われた作業が失われます。 そのため、ログ ファイルはフォールト トレランス ストレージに置くことを強くお勧めします。
データベースが破損した場合、またはデータベースを復元する場合は、ログ末尾のバックアップを作成して、データベースを現在の状態に復元できるようにすることをお勧めします。
注意事項
既知の問題点: メモリ最適化テーブルを含むデータベースでは、回復なしでトランザクション ログ バックアップを実行し、後で回復を使用してトランザクション ログの回復を実行すると、データベースの復元プロセスが応答しなくなる可能性があります。 この問題点は、ログ配布機能にも影響する可能性があります。 この問題を回避するには、復元プロセスを開始する前に SQL Server インスタンスを再起動します。
既定では、バックアップ操作が成功するたびに、 SQL Server エラー ログおよびシステム イベント ログにエントリが 1 つ追加されます。 ログを頻繁にバックアップすると、これらの成功メッセージがすぐに蓄積され、他のメッセージを探すのが困難になるほどエラー ログが大きくなることがあります。 このような場合、スクリプトがこれらのエントリに依存していなければ、トレース フラグ 3226 を使用してこれらのログ エントリを除外できます。 詳細については、トレース フラグ (Transact-SQL)に関する記事を参照してください。
ログ バックアップは、ビジネス要件に対応するために十分な頻度で作成してください。特に、ログ ストレージに障害が起こった場合に生じる作業損失に対する許容範囲を考慮してください。
ログ バックアップを行う適切な頻度は、作業損失に対する許容範囲と、ログ バックアップを保存、管理、復元できる量とのバランスによります。 復旧計画を導入するときは必要な回復時間目標 (RTO) と回復ポイントの目標 (RPO) について、特にログ バックアップの頻度について検討してください。
15 分から 30 分間隔でログ バックアップを行えば十分でしょう。 業務上、作業損失の可能性を最小限に抑えることが求められる場合は、ログ バックアップの頻度を増やすことを検討します。 ログ バックアップの頻度を増やせば、ログ切り捨ての頻度も高くなり、ログ ファイルが小さくなる利点もあります。
重要
復元する必要があるログ バックアップの数を制限するには、定期的なデータのバックアップが不可欠です。 たとえば、データベースの完全バックアップを毎週実行し、差分バックアップを毎日実行するようにスケジュールできます。
繰り返しになりますが、復旧計画を導入するときは必要な RTO と RPO について、特に、データベースの完全バックアップと差分バックアップの頻度について検討してください。