SQL Serverで「トランザクションログがいっぱいです」問題

http://technet.microsoft.com/ja-jp/sqlserver/gg639066.aspx

現象

「エラー 9002: トランザクション ログがいっぱいです。」が発生する。

前提

復旧モデル
・完全  …完全なログを残す
・一括ログ…大規模な一括操作を行う場合に一時的に復旧モデルを「完全」→「一括ログ」にする
・単純  …データベースのバックアップ までの復旧のみ可能
自動拡張
・有効…ログファイルのサイズは自動的に拡張する
・無効…ログファイルのサイズは自動的に拡張しない
トランザクション ログの切り捨て操作
・用意されているログファイルの容量の末尾まで利用されると、先頭に戻って再使用する。
・これがされない場合は、自動拡張がされる。自動拡張無効の場合、「トランザクションログがいっぱいです」エラー発生

原因

自動拡張が無効。
ドライブ空き容量の不足。
※なお、「単純」復旧モデルではトランザクション ログが自動的に切り捨てられます。

対策

(A) トランザクション ログ ファイルの自動拡張が有効に設定します。最大ファイル サイズを増やす。
(B) トランザクション ログ ファイルが配置されているドライブのディスク領域を解放します。
(C) トランザクション ログ ファイルを、空き容量が十分にある別ドライブに移動または追加します。
(D) トランザクション ログのバックアップを実行し、トランザクション ログの切り捨て (論理的な領域解放) を行います。
(E) トランザクション ログをバックアップせずに、トランザクション ログの切り捨て (論理的な領域解放) を行います。
(F) 実行時間の長いトランザクション (問題の原因となっていると考えられるトランザクション) を特定し、完了 (強制終了) させます。
(G) トランザクション ログ ファイルのサイズが必要以上に大きくなっている場合、物理的に圧縮します。