Windows・MS

SQLServer2000でログファイルがパンク!初期設定を変更しないと痛い目に

突然SQLServer2000がインストールされているサーバのディスク容量がパンク!

いつの間にやら空き容量が100MB以下になってます。

 

先月までは200GBくらい空き容量があったはずなのに、などと考えながらサイズの大きいファイルを探してみると。

 

SQLサーバ配下にある拡張子「.ldf」のファイルが350GBになってました

 

調べてみると、この「ldf」というファイル、トランザクションログを記録するためのファイルのようです。

トランザクションログは、データの復旧に使われるもので、障害が発生した時点の状態にデータを復旧させることができます。他にも様々なことに使われるのですが、その辺はSQLServerの公式サイトで確認してください。

一番問題なのは、標準設定のまま使用していると、自動拡張され続け、最終的に今回のように容量上限まで達してしまうようです。

 

では、解決策ですが、自分は以下の3つの処理で無事解決に至りました(^^♪

  • トランザクションの削除
  • トランザクションログファイルの圧縮
  • ログサイズの上限を設定

今回の環境はSQLServer2000でのことなので、バージョンにより実行するコマンドも変わるかもしれません。

その辺はご了承ください。


トランザクションの削除

SQL クエリアナライザを起動し、以下のコマンドを実行します。

例:データベース名が「TEST_DB」の場合

この処理ではファイルサイズは変化しません。ファイルの中のデータを削除するだけです。


トランザクションログファイルの圧縮

SQL クエリアナライザを起動し、以下のコマンドを実行します。

例:データベース名が「TEST_DB」の場合

表示結果から、「filename」列に物理ファイルパスが格納されていることがわかると思います。

値を確認し、拡張子「.ldf」の物理ファイルパスが格納されている行の「name」列の値をコピーします。

続けて以下のコマンドを実行します。

パラメータの2番目は、ファイルサイズ(MB)を指定します。

経験上、1回で指定のサイズに変わることはないです。

上記コマンドを複数回実行してみてください。


ログサイズの上限を設定

Enterprise Managerを起動します。

該当するデータベースを右クリックして「プロパティ」を選択します。

「トランザクション」タブを選択し、「ファイルの自動拡張」のチェックを外します。

割り当てた領域(MB)に任意の数字を入力してください。

この設定を行うことで、ログファイルのサイズが上限を超えずに、循環ログとして運用されます。

 

  • この記事を書いた人
  • 最新記事

だっち

30代 二人の子持ち。 婿はなにかと肩身が狭いので、寺泊で釣りができることが何よりの癒しです。シーバス、アジング、メバリング、ショアジギング、たまにぶっこみ釣りやサビキ釣りも。冬にはスノボを楽しみます。