ブログのデータベースが破損しました・・・
先日から、使用しているシステムのトラブルなどにより、一部ページの閲覧が出来ない状態が続いています。お借りしているサーバには余計な負荷をかけるし、データベースは破損するし・・・と、今のところ散々ですが、とりあえず状況報告だけさせていただきます。
検索関連システムは止めてます
今現在、使用できなくなっているのは、
・ページ上部の検索窓
・タグ関連(「★★★」など)
・ページ下部の地域一覧(「奈良駅周辺」など)
この辺りをクリックしていただくと、画像のようなエラーになりますので、申し訳ございませんが、ブラウザの「戻る」ボタンから前のページにお戻りください。
これに関しては、使用しているシステム「Movable Type」の標準検索システムが、かなり負荷がかかる出来の悪い子ですので、お借りしているレンタルサーバ屋さんにお叱りを受けまして、システムをストップさせています。
とりあえず、別に使えそうな検索システムも見つかりましたので、順次そちらに切り替えて行きたいと思います。
データベース破損で毎回「ログアウト」
で、それ以前に問題なのが、ブログのデータベースファイルが壊れてしまったこと。
記事データなどは(多分)全て生きていると思うのですが、コチラの記事にあるようなトラブルに見舞われてしまいました。
●Movable Typeがいきなり壊れた!(DBのmt_session) | BULANCO BLOG
ブログのシステムを触ろうとすると、ページを移動するたびにいちいちログイン画面へ飛ばされるんですよ・・・。それさえ我慢すれば、とりあえずの作業は出来そうなんですが、これが想像を絶するストレスで、長く続けていたらブログを書くことが嫌いになりそうですので、これを修正しなくてはいけません。
しかし、MovableTypeのテンプレートなどを新しいシステムに移動させるのは、全て手作業です(一括で移動するプラグインもありますが、今の状態ではそれも使用できませんでした)。
つまり、百以上はあると思われるテンプレートの類を、いちいち現在のシステムから新しいシステムへとコピペして(しかもページ移動たびにログインを求められながら!)いかなくてはいけないようなのです!
書きたいことも色々とあるし、行きたいところも色々とあるんですが、こればかりはバックアップをサボっていた私の責任ですから仕方ありません・・・。しばらくは地味な作業を続けたいと思います。
データが消失していたらスミマセン!
・・・ということもございまして、ここ数日はサイトの更新ができません。
また、この数日でいただいたコメントやトラックバックなども、ひょっとしたら消えてしまっている可能性もあります。
今のところどれだけの被害になるのかは分かりませんが、万が一、データが消えていたとしても、どうぞお許しください!
※ 2009/09/14 追記
MovableTypeのデータ障害ですが、ようやく復旧しました。
現在のバージョンは「Movable Type 4.261」。4.2後半から採用された「データバックアップ」と「復旧」という、かなり便利な機能を使って、ブログの全データを新しいブログにお引っ越ししました。
以前のバージョンの「インポート」「エクスポート」では、ブログ記事のデータのみが移動できるだけで、テンプレートや設定などは引き継げませんでしたので、これは大きな進歩ですね。これさえ使えばサクサクとデータ移行も進む・・・かと思いきや、トラブルが頻発しました・・・。
もともと、データベースが壊れてしまった状態からの復元でしたので、データ破損が原因なのか、MT側の不具合なのかは判別できませんが、やはり同じような症状で悩んでいる方も多いみたいですので、とりあえずメモとして残しておきます。
●「Backup-2.xml」で「バージョンが違います」エラー
バックアップデータが巨大になると、サーバ側のパワー不足によって復元出来なくなってしまいます(作業中に止まります)。このため、いくつかのファイルに分割して作成する必要があります。
私は1MBに分割して作成して、新しい環境で復旧しようとしたのですが、まずは「Backup.manifest」→「Backup-1.xml」と進んで、次の「Backup-2.xml」をアップすると、(正確なエラーメッセージは忘れましたが)「バージョンが違います」というエラーが発生。次へ進めなくなるのです。
ちなみに、「データバックアップ」「復旧」の作業は、MTが同じバージョン同士でなければ不可能なんですが、もちろんそれは問題ありません。
ちなみに、このエラーが出ているバージョンというのは「4.0071」。MT本体のバージョンではなく、MTが作成したデータベースのバージョンのことで、ちょっとややこしいですね。
とにかく、解決情報を探していると、某サイトさま(忘れました!)でアッサリと解決。
「Backup-1.xml」のヘッダー情報は↓このようになっていますが
<movabletype xmlns='http://www.sixapart.com/ns/movabletype'
backup_what='' backup_by='naka(ID: 1)' schema_version='4.0071' backup_on='2009-09-11T14:08:51'>
「Backup-2.xml」を見てみるとこれだけ。
<movabletype xmlns='http://www.sixapart.com/ns/movabletype'>
バージョン情報が記されていないために読み込みエラーになる・・・というアホらしいことになっていたんですね!そこで、Backup-1のヘッダー情報を、Backup-2以降のものに上書きすると、なんなく解決。
こんなつまらないことで数時間が費やされました・・・。
●<Can't call method "label" on an undefined value>
無事にデータを読み込んで、しっかりと移動できているのかと確認してみると、一部のブログのカテゴリ情報が抜け落ちているくらいで、他はほぼ完璧に環境を移動できていました!「MovableTypeは進化してる!」と思ったのもつかの間、、、、
再構築するたびに、こんなエラーが出るようになりました。
<Can't call method "label" on an undefined value>
最初は再構築が終わる段階でエラーが発生していたため、無視できるかと思ったのですが、抜け落ちていたカテゴリを登録しなおして再構築すると、エラーが頻発!しまいには、管理画面に入るだけでもエラーが発生するようになってしまいました。
これの解決策は、こちらのサイトさまで発見しました。
■Movable Type 4.2 Can't call method "label" on an undefined value - 徒然雑草
インストールディレクトリの「/lib/MT/Entry.pm」という、あまり触る機会の無いところファイルの一文を修正するだけで、ピタリとこのエラーは止まります!スゴイ!
しかし・・・、この方法には大きな弊害があります。それは「カテゴリ名が表示されなくなる」ということ。エントリーの「パン屑リスト」にもカテゴリ名は表示されません。これはかなりの痛手なんですが、背に腹は変えられませんからね。
環境によるものなのか、プログラムの欠陥なのかは分かりませんが、MovableTypeのバックアップには、カテゴリー周りの処理がおかしくなることがあるみたいですね。
このエラーを回避するために、バックアップデータを作成する側で、まずはカテゴリー情報を一切削除してから移動する・・・なんてことも試してみたかったのですが、何せデータベースが破損しているため、カテゴリーの削除すら不可能でしたので、詳しいことは不明です。
●とにかく疲れました!
ちなみに、この「奈良に住んでみました」というブログは、「MultiBlog」というシステムを使って、1つの親ブログに7つの子ブログの情報を集約して表示している・・・という、ちょっとややこしいシステムになっています。
これは、全てのブログ記事を1つのブログで扱うと、データ量が膨大になりすぎてまともに動作しなくなるためにこのように作ったのですが、その分だけテンプレートのお引っ越しなどをしようと思ったら、とんでもない作業量が必要になってくるのです。こんな事情もあったため、今回は無理やり「バックアップ」「復元」を使って復旧作業を行いました。
しかし、これで同じようなエラーが出てしまったら、ブログのデータは「エクスポート」「インポート」で、環境設定やテンプレートの移動などはコピペで頑張った方が安心かもしれませんね。自分が使用しているシステムが正常に稼動していないと思うだけで、ちょっと気持ちが悪いですし・・・。
ただし、「Movable Type 5.0」へのメジャーバージョンアップももうすぐですので、これで色んな不具合が解消されているかもしれません。その逆の可能性もありますので、気軽に移行できるものでもありませんが、どうなることやら。。。。