トップ回答者
Logファイルの圧縮で困っております。

質問
-
いつもお世話になっております。
2008R2のログファイルが圧縮できず困っております。
毎日mdf,ldfのバックアップを取得しておりますが、ログが大きくなるため
手動で圧縮しようと試みましたが、エラーとなりました。
試した事
--
DBCC OPENTRAN('TESTDB')
開かれたアクティブなトランザクションがありません。
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。DBCC SHRINKDATABASE (TEST, 10);
GODBCC SHRINKDATABASE: データベース ID 9 のファイル ID 1 がスキップされました。ファイルに再利用する空き領域が不足しています。
ログ ファイル 2 (TEST) を圧縮できません。ファイルの末尾にある論理ログ ファイルが使用中です。(1 行処理されました)
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。--
アクティブなトランザクションが無いのにログファイルが使用中になっており
原因がさっぱり判りません。
ご質問ばかりで恐縮ですが、ご教授頂ければ幸いです。
回答
-
ログファイルは常に使用中です。
ログファイルが使用中かどうかと、アクティブなトランザクションがあるかどうかは別の話です。
末尾が使用中、というのがエラーメッセージの趣旨です。このあたりは以下に分かりやすくまとまっているので、ご参照ください。
http://blogs.msdn.com/b/jpsql/archive/2013/05/09/dbcc-shrinkfile.aspx定期的にバックアップしているのにログファイルが大きすぎるということであれば、ストレージの追加や復旧モデルを下げる、トランザクションログのバックアップの頻度を上げる、などといった辺りを検討されるのが本筋の対応かと思われます。
何か過去極端な負荷をかけてしまってログファイルが肥大化してしまっているような場合は別ですが、そうでなければ一時的にログファイルを小さくしても早々に元のサイズに戻ってしまいますので、意味が無いのではないでしょうか。逆に、過去の経緯で必要以上に肥大化しているのであれば、適宜SHRINKFILEをしていればそのうち(現在のログの位置が先頭まで移動した後、つまり末尾が使用中で無くなった後)ファイルサイズが縮みます。
MCITP(Database Developer/Database Administrator)
- 編集済み nagino - 引退エンジニア 2014年1月24日 10:38
- 回答としてマーク Chocopudding 2014年1月28日 0:13
すべての返信
-
ログファイルは常に使用中です。
ログファイルが使用中かどうかと、アクティブなトランザクションがあるかどうかは別の話です。
末尾が使用中、というのがエラーメッセージの趣旨です。このあたりは以下に分かりやすくまとまっているので、ご参照ください。
http://blogs.msdn.com/b/jpsql/archive/2013/05/09/dbcc-shrinkfile.aspx定期的にバックアップしているのにログファイルが大きすぎるということであれば、ストレージの追加や復旧モデルを下げる、トランザクションログのバックアップの頻度を上げる、などといった辺りを検討されるのが本筋の対応かと思われます。
何か過去極端な負荷をかけてしまってログファイルが肥大化してしまっているような場合は別ですが、そうでなければ一時的にログファイルを小さくしても早々に元のサイズに戻ってしまいますので、意味が無いのではないでしょうか。逆に、過去の経緯で必要以上に肥大化しているのであれば、適宜SHRINKFILEをしていればそのうち(現在のログの位置が先頭まで移動した後、つまり末尾が使用中で無くなった後)ファイルサイズが縮みます。
MCITP(Database Developer/Database Administrator)
- 編集済み nagino - 引退エンジニア 2014年1月24日 10:38
- 回答としてマーク Chocopudding 2014年1月28日 0:13