読者です 読者をやめる 読者になる 読者になる

Selection for my Life

いま、僕にできること。

SQLServer2003 トランザクションログ肥大化

SQLServer2003 トランザクションログ肥大化

今日は、現在会社で稼働しているSQLServerのトラブルシュートです。

稼働しているといっても、稼働させていただけで、メンテナンスなど、全然行っていなkったので、今回のトラブルが発生しました。

 

■トラブル

WindowsServerのHDD容量をすべて使い果たし、SQLServerが停止した。

WindowsServerは、Cドライブ 70GBのみで構築されており、その中で、SQLServerが動いておりました。夜間にDBバックアップを取得しているのですが、そのバックアップが引き金で、HDDを使い果たし、停止しました。

 

■対処

1.消せるデータを削除して、まずは、作業領域を確保

サーバのごみ箱を空にしたり、世代管理していた、SQLServerのバックアップを最新のバックアップを残し、削除を実施して、3GBほど確保。その後、OSを再起動して、SQLServerを再開し、運用を継続

2.HDD圧迫の原因調査

SQLServerのDataフォルダ内で、DBが肥大化しているものが無いかチェック。そして、発見したのが、実DBは、5GB程度なのに、そのトランザクションファイル(.ldf)が45GBにもなっているものが・・・・!

3.トランザクションファイルの切り捨て

トランザクションログをバックアップして、切り出してから、NASなどへ移動させればログファイルの容量を削減できますが、HDD空き領域が枯渇しすぎているため、バックアップをあきらめ、切り捨てることにしました。運用していたのSQLServer2003だったので、下記のコマンドが使えた。

 

クエリアナライザで下記のSQLを実行

BACKUP LOG [DB名] WITH TRUNCATE_ONLY

EnterpriseManagerで

対象のDBを右クリック → すべてのタスク → DB圧縮

 

これで、なんとか乗り切りました。笑

これからは、SQLServerでは、DBだけでなく、トランザクションログもバックアップするように設定変更です。