TAROSITE.NET: TOKYOTODAY

Movable Typeのメンテナンス


by TARO MATSUMURA @taromatsumura 2006.04.05 23:59

 今日は1日、自分のウェブサイトで使っているMovable Typeのメンテナンスを行った。動作がかなり重たくなってきて、時々リビルド中やMovable Typeのブログ設定の画面遷移の際にInternal Server Errorが頻発するようになった事もあって、ちょっと時間を取って何とかしなければ、と思っていたのだ。作業としては、BerkeleyDBをMySQLに変更することと、負荷の高いブログを別サーバに移すかどうか検討することだ。ただ、調べてみるもので、原因の根っこは深かった。

 Movable Typeにはmt-db2sql.cgiという、BerkeleyDBからMySQLなどのデータベースへ移行するためのスクリプトが入っている。データベースの移行はサーバにデータベースを用意して、このスクリプトを実行すればよいはずだった。実行する際のエラーは簡単なミスで乗り越えられたが、移行しようとしても途中で行こう作業が終わってしまうのだ。これはいったいどういう事だろう。エントリーの件数は複数のblogを合わせても7000件ほどにも関わらず、IDに40000近い数字が振られたデータをコピーしようとしてタイムアウトしている痕跡が見られるのだ。

 これはいったいどういう事か、と思って調べてみると、大変なことになっていた。この40000近いIDというのは「迷惑コメント」の中に入っているスパムコメントだった。Movable Type 3.2には迷惑トラックバック・コメントの対策機能が備わっていて、スパムだと思われるコメントやトラックバックをあらかじめはじいてくれる仕組みになっており、コメントやトラックバックが到着した通知すら行われない。これによって管理が楽になったことは間違いない。ところが通知されないことがアダとなったのが僕のパターン。はじかれていて通知されない快適blogライフを送っていた結果、迷惑コメントに40000件近いスパムコメントがたまっていたのだ。

 これを削除しなければデータベースの移行も出来ないと思い、削除し始めた。Movable Typeのインターフェイスでは何件同時に表示させるだとか、全てチェックして削除、といった処理をすることが出来るが、これもデータベースの件数が多すぎて、せいぜい1回に450件ずつしか処理できない。こればかりは仕方ないので、地道に削除を繰り返していった。件数が10000件を切るとだんだん処理が軽くなってきて、件数を増やすことも出来るようになってきた。それでもずいぶん時間かかりましたね。

 これでいけると思ったらまただめ。今度はログが65000件。これも削除しました。そして気を取り直してmt-db2sql.cgiを実行して、無事にデータベースの移行が終わった。こまめにシステムのゴミを削除しなければ鳴らないのは、blogに限った話じゃないですね。


Twitter Update
    Trackback
    • URL:
      http://upwest.org/mt/mt-tb.cgi/6379