SQL Serverのトランザクションログを圧縮する
SQL Serverのトランザクションログを圧縮する手順を紹介します。
概要
SQLサーバーを利用しているとだんだんトランザクションログが増えていきます。何もしないとトランザクションログはディスクがいっぱいになるまで増え続けてしまうため、時々トランザクションログを圧縮する必要があります。
トランザクションログの圧縮の手順
データベースの復旧モデルが完全復旧モデルの場合、トランザクションログの圧縮は次の通りです。
まず、ログファイルにどの程度空きがあるか確認します。Microsoft SQL Server Management Studio を起動しデータベースサーバに接続します。データベースサーバに接続できたら、左側のオブジェクトエクスプローラから圧縮したいデータベースを選択します。次に、右クリックをしポップアップメニューを表示させ「タスク」メニューの「圧縮」メニューを選択します。
ファイルの圧縮ダイアログが開きますので、ファイルの種類を「ログ」に変更します。「現在割り当てられている領域」にログファイルのサイズが、「使用可能な空き領域」に使用できるログ領域が表示されます。下の図の例では、空き領域が108MBしかなく、空き領域が0%となっています。この状態ですとログが追加されるたびにログファイルが拡張されていってしまいます。
データベースが完全復旧モデルの場合は、トランザクションログのバックアップを取ることでトランザクションログを切り捨てることができます。トランザクションログをバックアップは以下の手順です。
まず、オブジェクトエクスプローラからバックアップをとりたいデータベースを選択します。次に、右クリックをしポップアップメニューを表示させ、「タスク」メニューの「バックアップ」をクリックします。
データベースのバックアップダイアログが開きます。「バックアップの種類」コンボボックスを開き「トランザクションログ」に変えます。また、バックアップ先のファイル(バックアップファイルの出力先)を設定します。

OKボタンをクリックするとバックアップが開始されます。
バックアップが終わりましたら、「タスク」メニューの「圧縮」メニューを選択し、ファイルの圧縮ダイアログを開きます。使用可能な空き領域が増えていることが確認できました。トランザクションログが切り捨てられてことが確認できました。
なお、トランザクションログファイルのサイズも小さくしたい場合は、圧縮アクションを設定し、OKボタンを押すことで、トランザクションログファイル自体のサイズを小さくすることもできます。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。