2003年6月12日
『トランザクションログファイルの圧縮 』
データベースに対して、レコードの更新や挿入、削除などが非常に多く発生するようなデータベースの場合は、トランザクションログファイルが知らず知らずのうちに自動拡張し大きなファイルサイズになっていることがあります。
定期的にトランザクションログファイルの大きさに注意を払うことが重要です。
前回もお話しましたが、
BACKUP LOG データベース名 WITH TRUNCATE_ONLY
この命令は、トランザクションログの切捨てと呼ばれる命令です。この命令を実行しても、トランザクションログファイルの物理的なサイズは、小さくなりません。
トランザクションログファイルのサイズが 2 GBのときに、この命令を実行
しても、切捨てした後の物理サイズは、命令の実行前と同じで変わりません。
しかし切捨てしたことによって、そのトランザクションログファイルの中身がすべて捨てられたので、2 GBの大きさすべてを、新しいログレコードの記録に使う事ができるようになったので、しばらくの間はトランザクションログファイルのサイズは
2 GBのままでしょう。当分の間は自動拡張しません。
もしハードディスクに余裕があるのであれば、ログを切捨てしてもログファイルを圧縮せずに、そのまま放っといておくデータベースの管理方法もあります。
それは、トランザクションログファイルが頻繁に自動拡張を繰り返し、システムのパフォーマンス低下の原因の 1 つになる時は、トランザクションログファイルサイズが大きなままにしておくのが良いわけです。
データベースをバックアップして、別のサーバーで復元しなければいけないような保守作業をやるときは、データベースのバックアップを実行する前に、トランザクションログを切捨てして、物理的なサイズを小さくしてから、データベースのバックアップを実行しましょう。
データベースを復元するときは、バックアップを実行したときと同じファイルサイズで復元されます。トランザクションログファイルのサイズが
2 GBだったら、復元後のファイルサイズも 2 GBです。ファイルサイズが大きいと、復元に時間がかかります。
データベースサーバー専用機のような環境であれば、頻繁にトランザクションログファイルの物理的なサイズを小さくする必要はありませんので、DISK
残量に対する割合から判断しましょう。
SQL Server 2000であれば、トランザクションログファイルを切捨てする命令をクエリアナライザ等で実行し、Enterprise
Manager の「データベースの圧縮」操作画面を表示して OK ボタンを押すだけで、トランザクションログファイルの物理的なサイズは小さくなります。もちろん、データファイルの方も圧縮されますので、データファイルはそのままの大きさにしたいときは、さらに「ファイルの圧縮」メニューを表示して、トランザクションログファイルを指定してファイル単位の圧縮を実行します。
SQL Server 7 に比べて、SQL Server 2000 では、トランザクションログファイルの物理サイズの圧縮が誰でも簡単にできるようになりました。今までデータベースサーバーは難しいというイメージがありましたが、Enterprise
Manager と SQL Server 2000 の組み合わせなら、2 〜 3 日間の講習会を受講すれば、誰でも DBA
になれると思います。
|