技術記事 / SQL Server、ERP、レガシーシステム

SQL Server トランザクションログ肥大化時の復旧モデル・ログバックアップ・縮小リスク確認

ログ再利用待機と復旧目標を確認し、ログバックアップや長時間トランザクションを是正します。縮小は定常運用ではなく例外作業です。

先に結論

ログ再利用待機と復旧目標を確認し、ログバックアップや長時間トランザクションを是正します。このケースでは、まず「復旧モデル」と「log reuse wait desc」を確認し、その後「トランザクションログのバックアップチェーン」を基準に修正の要否を判断します。

最初に切り分ける範囲

このサーバー/データベースの事象では、まず「リカバリモデル」と「log reuse wait desc」で障害境界を決め、その後「トランザクションログのバックアップチェーン」へ進みます。本番設定を変更する前に、現状、発生時刻、正常な比較対象を記録します。

依存関係に沿った確認順序

確認項目確認する理由推奨アクション
01 · 復旧モデル復旧モデル を、設定値だけで判断せず、ログ、カウンター、状態情報で実経路上から確認します。復旧モデル の現在値、証跡元、時刻を記録します。変更が必要な場合は一度に一条件だけ変更し、切り戻し用に元の設定を保持します。
02 · log reuse wait desclog reuse wait desc を、設定値だけで判断せず、ログ、カウンター、状態情報で実経路上から確認します。log reuse wait desc を読み取り中心で確認し結果を保存します。基準との差がある場合は、障害時刻と直近変更との関係を確認してから修正します。
03 · トランザクションログのバックアップチェーントランザクションログのバックアップチェーン を、設定値だけで判断せず、ログ、カウンター、状態情報で実経路上から確認します。トランザクションログのバックアップチェーン を正常系、ログ時系列、実際の業務経路と比較し、原因であることを確認してから本番設定を変更します。
04 · 長時間トランザクション、レプリケーション、AG などの待機長時間トランザクション、レプリケーション、AG などの待機 の現在値、関連ログ、直近の変更を確認し、障害発生時刻と突き合わせて変更要否を判断します。長時間トランザクション、レプリケーション、AG などの待機 の現在値、証跡元、時刻を記録します。変更が必要な場合は一度に一条件だけ変更し、切り戻し用に元の設定を保持します。
05 · ディスク容量ディスク容量 の現在値、関連ログ、直近の変更を確認し、障害発生時刻と突き合わせて変更要否を判断します。ディスク容量 を読み取り中心で確認し結果を保存します。基準との差がある場合は、障害時刻と直近変更との関係を確認してから修正します。
06 · ログ縮小を一時対応に限定する判断ログ縮小を一時対応に限定する判断 の現在値、関連ログ、直近の変更を確認し、障害発生時刻と突き合わせて変更要否を判断します。ログ縮小を一時対応に限定する判断 を正常系、ログ時系列、実際の業務経路と比較し、原因であることを確認してから本番設定を変更します。
読み取り確認の例
SELECT name, recovery_model_desc, log_reuse_wait_desc FROM sys.databases;

根拠を確認してから変更する

  1. まず読み取り中心で証跡を取得し、設定変更前に「復旧モデル」と「log reuse wait desc」を確認します。
  2. 最初の確認が正常なら「トランザクションログのバックアップチェーン」と「長時間トランザクション、レプリケーション、AG などの待機」へ進み、障害時刻と結び付く証跡を残します。
  3. 証跡が症状を説明できる場合に限って設定を変更します。「ディスク容量」を変更する前に元の値と切り戻し条件を定義します。
  4. 「ログ縮小を一時対応に限定する判断」は限定範囲で検証してから、本番ユーザーまたは本番トラフィックへ展開します。

復旧確認と切り戻し

  • ユーザーまたはアプリケーションの一連の業務動作を確認し、「復旧モデル」単独の状態だけで完了としません。
  • 変更後に「ディスク容量」と「ログ縮小を一時対応に限定する判断」を再確認し、新たな迂回、権限拡大、二次障害がないことを確認します。
  • 「復旧モデル」から「ログ縮小を一時対応に限定する判断」までの証跡、変更前後の設定、業務確認結果、切り戻し点を保存します。

よくある誤判断

  • 「リカバリモデル」と「log reuse wait desc」を同時に変更し、どちらが原因だったか追跡できなくすること。
  • 「トランザクションログのバックアップチェーン」が正常というだけで、「長時間トランザクション、レプリケーション、AG などの待機」を含む業務経路全体も正常と判断すること。
  • 「ディスク容量」または「縮小処理が一時対応に過ぎないか」の一時例外を、責任者・期限・切り戻し記録なしで本番に残すこと。

関連する確認事項

「SQL Server トランザクションログ肥大化時の復旧モデル・ログバックアップ・縮小リスク確認」はどこから確認すべきですか?

まず「復旧モデル」と「log reuse wait desc」を確認します。本番状態を変えずに最初の切り分け境界を作れます。

最初の層が正常な場合、次に何を確認しますか?

次に「トランザクションログのバックアップチェーン」と「長時間トランザクション、レプリケーション、AG などの待機」を確認し、障害時刻および実際のユーザー/アプリ経路と突き合わせます。

変更後に何を残すべきですか?

「ディスク容量」と「ログ縮小を一時対応に限定する判断」の証跡に加え、元の設定、検証結果、観察記録、切り戻し点を保存します。

前の記事老朽化した Windows Server の移行前評価と切り戻しの残し方次の記事SQL Server ポートへ到達できるのに ERP クライアントが起動できない場合の次の確認項目

実際の環境に合わせた切り分けが必要ですか?