SQLServerログを日ごとにアーカイブする

SQL Server ログ」は、「現時点」と、「アーカイブ #1」、「アーカイブ #2」・・・のように分割されている。アーカイブ化されるのは、データベースサービスが再起動された時のようだ。つまり、24時間365日動きっぱなしの場合は、1つのログファイルにたまり続けてしまう。

容量が大きくなると、読み込みに時間がかかってしまったり、ディスク領域を消費するので、日ごとにアーカイブされる仕組みを考えてみた。

なお、ここでは"アーカイブ化"としているが、"サイクル"や"再利用"なのかも知れない。

SQL Server ログ のアーカイブ

現時点の内容を、「アーカイブ #1」にアーカイブ化するには、以下のSQLを実行すれば良い。

EXEC sp_cycle_errorlog

定期実行化

アーカイブ化のSQLを、「SQL Server エージェント」のジョブに登録し、日ごとに実行するようスケジュール設定する。

SQL Server 2005などでは、メンテナンスプランで、「T-SQL ステートメントの実行」で行っても良いと思われる。

ログファイルの最大数

SQL Server ログ」を右クリックし、「環境設定」(SQL Server 2005の場合は「構成」)をクリックすると、ログファイルの最大数が設定できる。

最大でも99ファイルまで設定できるので、1日1ファイルとすると、3ヶ月分が保存される計算。