MovableTypeを復旧させた。
日に30時間のハッキングという矛盾を乗り越え、今やすべては元通りである。
私の経験が特殊であってほしいが、おそらくこの祈りは空しい。Berkeley DBのバージョン違いによるトラブルは、これから数十年間、絶えることがないだろう。同じ罠にはまった人々のために、ここにメモを残しておく。
まず、このページを見る。事態の大枠がつかめるはずだ。これに書いてあるとおりで復旧できたら、それに越したことはない。
これに書いてあるとおりでは復旧できない場合(私がそうだった)、試す価値のある方法がある。
移行先のサーバではなく移行元のサーバ上でdb_dump185を使い、ダンプファイルを移行先にコピーして、ロードするのだ。
もし移行元のサーバにdb_dump185がなければ、コンパイルする。Berkeley DBのソースからdb_dump185.cを探し出し、サーバにアップロード、サーバのシェルからgcc -ldb db_dump185.cとやってa.outを作り、これを使う。
さらに私の場合、バックアップのファイルが論理的な不整合を起こしていて、もうひとつ地獄めぐりをさせられたが、これはあまり一般的な問題ではないので省略する。