複数のシステムを運用していると、バッチなんかで出力されるログが溜まっていく。
定期的に削除されるようにしているし、個別のファイルに吐かれているものだから検索も面倒なので使い勝手が悪い。
なので、そのログのファイル名と内容をけっこう雑にSQLiteに入れて、ログDBとしてあとでWebから検索できるようにしている。
ログ自体はテキトーに入れているが、バッチがエラーになった時なんかに、過去に同じエラーが出たことがないかを調べたり、他のバッチでも同じエラーがないか調べるのには当初考えていたよりも便利に使えている。
そのログDBも放置しているといつの間にかサーバーのディスクを圧迫する容量となっていたので、同僚たちが大掃除している中、一人、サーバー内の掃除をしていた。
最初は単純にDeleteしてしまえば、SQLiteのファイルサイズが小さくなるだろうと思っていたけど、そうはならなかった。 Oracleだと自動拡張とかを考えなければ最初から指定した容量を取ってるからそれと同じノリか。一度、伸びると縮まらないジャージのゴムを思い出した。
調べると「vacuum」ってすると小さくなるらしいので試した。
CMD> sqlite ファイル名.sqlite sqlite> vacuum;
それほど時間がかかる事もなく、容量が小さくなった。
これで、サーバーの容量が足りなくなったと、夜中に呼び出されることもないだろう。