SQLServerのトランザクションログは、使われていない領域をうまく再利用してくれないのか、SQLServer 2008、SQLServer 2012 とバージョンを問わず、徐々に、どこまでも拡張していきます。
レポート⇒標準レポート⇒ディスク使用料を普段から見るようにして、トランザクションログの使用済み領域がどの程度なのか把握し、定期的にそのサイズまでトランザクションログを縮小するのは、必須なようです。
【トランザクションログを20GBまで縮小するSQLサンプル】
1 2 3 4 5 6 7 8 9 10 11 |
USE データベース名; GO -- Shrink the truncated log file to 1 MB. DBCC SHRINKFILE (トランザクションログ論理名, 20000); GO |
コメント
こんにちは。
3か月ほど前のポストに対してではありますが、どうしても気になったのでコメントします。
トランザクションログ バックアップは取得されていますか?
トランザクションログが再利用されないのは、復旧モデルを「完全」に設定し、
トランザクションログのバックアップを取得されていないからではないかと思われます。
トランザクションログ バックアップを取得することにより、
トランザクションログ ファイルの再利用可能な領域が解放され、ログ ファイル サイズが増大することなくログが再利用されるようになります。
SQLServer 2008 R2からSQLServer 2012 へDBを移行した際、DBの復旧モデルが、「単純」から「完全」へ、勝手に変更されていたのが原因でした。
「単純」へ戻したら、トランザクションログの極端な拡張は、発生しなくなりました。