最近Movabletypeを、3.01Dから3.11にアップデートしましたが、その後数日で調子が悪くなってきました。
同時期に、サーバーのディスク容量を拡大したため、ディスク容量の設定を変えて大量のログを保存するようにしていたのですが、ここでミスを犯してしまいました。。ログの容量が予想以上に大きかったのです。
エントリーの追加でエラーが出てしまい、すぐに気が付いて設定を直し改善したのですが、今度は”Couldn't create FileInfo because Tie DataSource/fileinfo.db ができません: Cannot allocate memory” と表示されて、エントリーの更新ができなくなってしまいました。。その原因を追究すると同じエラーで解決された方のページをみて!一発解決です。
”fileinfo.db”のエラーの原因は、そのファイルサイズの肥大に伴いディスクを圧迫することから始まり、今回の場合はディスク容量が限界に達した時点でエントリーの更新をしようとして、dbファイルの更新ができずにファイルを壊したことが原因のようです。
以前、movabletypeを3.01Dにした時には、エントリーその他バックアップをとりクリーンインストールしなおしていますので、このdbファイルも初期化された状態となっていた訳ですが、今回は、movabletype3.11をアップデートインストールしていますので、このファイルの肥大化に気が付きませんでした。
”Couldn't create FileInfo because Tie DataSource/fileinfo.db ができません: Cannot allocate memory ”のエラーの原因と対処方法を探している内に、Movable Typeのシステムデータベースとなる「db」フォルダ内の「fileinfo.db」が、なんと10MByte以上に肥大している事がエラーとなる可能性があると書かれています。
この「fileinfo.db」は、サイトに置かれているファイル情報などを記録して、Movable Typeはサイトの再構築をする度に、この情報を追記していくため、ファイルの容量が肥大化していくのだとされています。
私のサイトの場合、エントリが600を超えてサイトを全て再構築すると、一回につき150KByteほど「fileinfo.db」の容量が増加していきます。自分の様に再構築を頻繁に行う使い方ですと、これではたまったものではありません。
「fileinfo.db」が、MByte単位で肥大した状態では、エントリの登録に時間がかかったり、再構築の最中にサーバエラーで中断してしまうというトラブルが起きるようになってしまいます。これらの症状は最近あちこちでMTエラーとして報告されていますが、エントリの数ではなく、更新頻度でdbファイルが肥大化していきますので同症状に見舞われている場合には、こちらを疑った方がよいのではないでしょうか。
原因はわかりましたが、ではどのように対処すればよいのでしょうか?
これも幸いサイトにアドバイスがあり、このままではエントリの変更もできない状態なので、「fileinfo.db」を消去する方法を選択しました。その際に、最悪の場合を考えバックアップを行い、db各種ファイルも削除するのではなく、ファイル名を変えていつでも戻せるようにしてから作業を行いました。
1:MT各種ファイルのバックアップを行う 2:fileinfo......db名の数ファイル、私の場合には12ファイル存在していましたが、ファイル名を変更 3:以上!MTで再構築しなおすことで、初期化されたfileinfo......db各種ファイルが再作成されます。
※Movable Typeをクリーンインストールし直して、記事をインポートすることでも、fileinfo......dbファイルが初期化されますので、このような問題も解決可能です。