完全復旧

2009年3月31日Movable Type

え~と、MySQL4から5への移行で文字化けが存在しておりましたが、現行の最新データベースをエクスポートし、旧バックアップからコピペしました。

行ったテーブルは、`mt_comment`, `mt_entry`, `mt_trackback`の3テーブルのみです。他のテーブルで「~」や2バイト特殊文字を使っているものは無いだろうと判断して行いました。

これ以上は、面倒なのでやりません。

なので、ここ20分間の間にコメント、トラックバックがあっても消えて無くなってます<m(__)m>

いや、この3テーブルの構造が変わってなかったので楽だったですが、そうじゃなかったら、全面降伏ですね(´∀`*)ウフフ

次回からは、メジャーアップもそうですがマイナーアップ時も、不具合?が無いか確認してから行うようにしたいと思います。

本音を言うとバッチを作れば済むかなって思ったのですが、さすがに2倍と特殊文字だけはどうにもならない。それに「?」て文字がそのものの意味を持つ場合もあるので、最初は一件、一件書き換えていたのですが、「これ、何が化けたのかな?」って数日前のログを見ながら変えていって、「ん?追加された部分以外を数日前のログから取り出してマージし、テーブルの中身を殻にした状態にすれば、バッチじゃんと思い、せこせことさぎょうしました。

まあ、相方には、チョコレートを狩って来いと言われながらも、早くすっきりしたかったの、黙々と作業。ゴメンネ相方ちゃん。でもね、手作業で嫌になったのは、貴方のブログの修正しなければならないコメント数が多すぎるからだよ。まあ、これで吹っ切ってSQL分のマージを行ったんですけど。

そうそう、さくらのインポートで受けられるテキストファイルがの最大が8,192KB なので、バックアップはいいけど、一発でインポート作業が出来なくなるのが面倒だな。8,192KBに収まるようにバックアップしたファイルを分割しなければならないんだよな。

エクスポート/インポートは、phpMyAdminじゃなくMovebleTypeのバックアップ/復元の方がいいのかな。どっちが正しいか、わからないや。

あと、ログファイルをみていて、前に使っていレンタルサーバー時代の残骸と、テスト的に作ったブログの残骸など、このレコード必要?ってのが一杯。かといって、勝手に削除して不具合起きたらやだからから、そのままにしてありますけどね。

誰か、不要と思われるレコードの抽出、ユーサーによる判断、削除な~んていうユーティリティを作ってくれないものだろうか。MySQLともいえども不要なテーブルやレコードが無くなれば、パフォーマンスに影響が出ると思うんだけどな。

ってことで、バージョンアップの際は、バックアップを取りMovableTypeをインストールし、ujis_japanese_ciになっておりフィールドをutf8_general_ciへしてからインポートすると幸せになります。

教訓その2:仕事じゃなくても事前に問題が無い事を確認する。

追伸:2009/03/30 肝心な事を忘れてました。mt-comments.cgiに「SQLSetNames 1」を入れないと文字化けが直らないかもしれません。失礼しました^^;

これらの修正はどの様な環境でも適用できるものではないと思いますので、要所要所で確認しながら行ってください。また、失敗したからと言って、私は何の責任も終えない事を最後に記します。

Posted by かふぇおれ