OneLittle STUPID New T-shirts!! 通販開始! Movable Type Template RGM-79C
マイメロメロメロミメロメロアワセテメロメロムメロメロなSTUPID BLOG 趣味SIDE
2004年4月28日

データベース破壊2

いつものようにブログを更新しようとしてエントリーを保存しようとしたらスクリプトエラー出まくりで途中でこけてしまう。ムキになって何度もやってると同じモノがいっぱい保存されてちょっと困った。しょうがないので重複したエントリーを手動で削除していくうちにエラーが出るようになってまたしてもデータベースを壊してしまった・・・・。

とにかくデータベースが完全になくなるのは困るのでDBフォルダごとバックアップ。これでとりあえずは一安心。

管理画面からエントリーをすべてエクスポートしようとしたらデータが多すぎて途中で止まってしまった・・・。xreaはホントにMTには向いてないな・・・。ちなみに途中で止まったことに気付かずそれをインポートしてしまい、最近のデータが全部消えてしまってた・・・。

触れば触る程事態は悪化していきついにはテンプレートとブログのタイトルまで古いヤツに戻ってしまいお手上げ状態に・・・。

いろいろ検索して調べていくうちに、本人はMySQL使ってるつもりだったのがBerkeleyDBのままだったようです。DBフォルダの中にデータがある時点でBerkeleyDBだと言うことにもっと早く気づけば良かったwDBファイルはバックアップ分が残ってるので何とかしてこれを読み込み直せれば復旧出来るんだけど処理に時間がかかりサーバ上ではなかなかうまくいかない。

ここで思いついたのがOSXにMTをインストールしてそっちで処理をしてサーバに戻す方法。まずはOSXにMTをインストールすることに目標を変えました。簡単にいくだろうと思ってたインストール作業がなかなかうまくいかずかなりの時間がかかってしまった。原因としては日本語パッチをwinでMTにあててそれをOSXにコピーする時にパーミッションが変わってしまってたんですが、それが分かるまで悩みまくりデシタ。

無事インストール出来たのでバックアップしていたDBファイルをOSXのMTに読み込ませようとしたら全然うまく読み込めず・・。調べてみるとBerkeleyDBのバージョンによって互換性がないようでdb_dumpやらdb_load等のコマンドを使って読めるようにしてやらないといけないみたいでいた。
ターミナルでいちいちコマンド打つのもめんどくさいのでapple scriptで自動化させてやろうと思って今度はそっちの方をすることにしました。ドラドロで自動化出来るモノが作りたかったのにうまく作れずいちいちファイル名を入れてその後の処理を自動化するタイプに切り替えました。ここまでたどり着く間に全部手動で打ち終わるような時間がかかっていたことは秘密death・・・・

ここまでやって変換したファイルを読み込ませようとしたら前と全く変わらず・・・・読み込めないよ?このまま復旧出来ないでブログも終わってしまうのかととても悲しくなってきたよ。

OSXのMTにデータを読み込ませるのは無理っぽいのでサーバ上で何とかする方法へシフトする。
BerkeleyDBのデータベースをMySQLにコンバートするmt-db2sql.cgiを使うことにする。mt.cfgをMySQLを使うように書き換えて(DataSource ./dbの部分をコメントアウトしないとBerkeleyDBを使ってしまう)、PhpMyAdminでいったんすべてのテーブルを削除、それからmt-db2sql.cgiを実行。
うまくいったーーーー!!金曜の早朝に破壊してしまって、ここにたどり着いたのが月曜の早朝・・長い道のりだった・・・・・。MySQLにしたから今までよりは処理時間が短くなってエラーも出にくくなると期待してます。データーベースの容量自体も少なくなったし。今データベースの容量が1.5M。XREAではDBのMAXが5Mだったような気がするので当分は大丈夫っぽいけどブログだけでも他の所への移動を真剣に考えた方がいいかもしれない。

Posted by 骨兎 at 18:06 このエントリーを含むはてなブックマーク

Post a comment