DBAtlas · データベース運用アトラス

9002: The transaction log for database is full due to ...(トランザクションログが満杯)

SQL Server

意味

データベースのトランザクションログファイルが満杯で、新しいトランザクションをログに記録できない。データベースは書き込みを拒否し、読み取り専用のように振る舞うことがある。

原因

FULL 復旧モデルでログバックアップがない、長時間オープンしたままのトランザクション、レプリケーション/AlwaysOn の遅延、またはログが拡張できない (自動拡張の無効化またはディスクの満杯)。log_reuse_wait_desc が理由を示す。

対処方法

sys.databases の log_reuse_wait_desc を確認する。FULL モデルで LOG_BACKUP なら、ログバックアップ (BACKUP LOG) を取得する。ACTIVE_TRANSACTION なら、オープンしたトランザクションを特定してコミット/ロールバックする (DBCC OPENTRAN)。ディスク領域を解放するか、ログファイルの自動拡張設定を修正する。ログが本当に肥大化した場合は、バックアップ後に DBCC SHRINKFILE で圧縮する。ログチェーンが不要なら復旧モデルを見直す。

DBAtlas で開く →

同じデータベースの他の項目