無駄にタイトルなげぇ。
最初に結論。バックアップさえあれば復旧が容易なWordPressでは、データベースの自動バックアップはやっておいて損はない。WordPress Database Backupプラグイン様々。
そもそもどうしてこうなったかというと。
昨日の更新時にサイトがなかなか重かった、という簡単な理由なんです。とはいえ、既にサイト表示の為に、色々いじってはいたんですが。
・MySQLのテーブルを最適化。
・他サーバからの画像呼び出しを極力減らして、自サーバからの呼び出しに変更。
・他サーバからのiframe等の呼び出しを必要最低限まで削減。
このくらいはやってたんだけど、それでもまだ重い。サーバ負荷は確かにあるけど、ピークタイム以外はまだそれ程でもない。
で。あとなにかあったかな・・・と考えてて、思いついたのがデータベースMySQLのバージョン。さくらインターネットのスタンダードプランでWordPressを使用し始めたのは2008/11/12前後。
この時期のバージョンから、今年になって変更されてたんじゃなかったっけ・・・と、調べると確かに変更されていました。
確認すると使用しているMySQLは4.0.xのまま。データベースを自動移行する機能はないので自分で変更するしかない。MySQLを4.0.xから5.1.xに変更したらサイト高速化しないかな・・・つか、WordPressのプラグインで正常動作しないものもあるし、バージョンアップしたら正常動作するかも知れない!やるしかない!
・・・と、軽い考えでちょちょっと調べて移行しようとしたのが大火傷。データ全部吹っ飛ばしたんじゃねえのか・・・とgkbrする数時間となったのでありました。まぁMovableTypeのログを500エントリくらい吹っ飛ばした時よりはましなんだけどね。あのときはエントリどころかスタイルシートもそうだし、そもそもテンプレートまで吹っ飛ばしたからなぁ・・・。
まずは現状のバックアップを取る→MySQL削除→MySQLを5.1に変更して新規作成→バックアップをインポート、しようとした。んだけど・・・。
これそのままですね。そのままやってphpMyAdminでインポートしようとした、ものの。どうも動作がおかしい。つか取り込めてない。あれー?とデータベースを開いてみると。
(゚Д゚)モジバケシテル・・・
ま、まぁこのくらいのミスは計算のウチなんですよ。よくやることなんで。という訳でWordPress Database Backupプラグインで自動バックアップしてあるデータをGmailから落とす。
これも毎回スター付けてアーカイブしてるのですぐに探し出せる、と。データ解凍して中身確認したけど文字化けもない。1日分だけデータ反映されてないけど、その分はローカルに保存してあるので再度投稿し直せばいい。で、phpMyAdminでインポート。
・・・出来ない。
つか、「インポートしました。」的なダイアログも失敗しました的なエラーメッセージも出ず、何故かphpMyAdminのログイン認証画面に戻る。再ログインしても当然データはインポートされていない。
ここら辺から焦り始めました。データがあるのにインポート出来ない、これほど困ることはない。とりあえず同じ作業を何度か実行してみるものの、結果は見事に同じ。どうしてもインポート出来ない。
さて・・・どうするか、とググること十数分。これならいけるのか?と思ったのがこれ。だったけどダメだった。
つか、よくよく見たらバックアップファイルが10MBとかあったんですよね。今頃気付くか俺・・・とか思いつつ、PoderosaインストールしてSSHでログイン。コマンド打ってしばらく待つと完了。・・・したものの。そこから表示されるサイトは全て文字化けしているしエントリは存在するんだけど、エントリ内容が飛んでしまっている。これも2,3度繰り返してみたものの、結果はやはりダメ。この方法でもダメでした。というか、やり方の問題なのかも知れないけど。
で、辿り着いたのがこれだった。
これはMovableTypeの場合なんだけど、基本的に同じMySQLなのでいけるんじゃないかな?と思い。これでダメだったら一旦寝てからにするか・・・と、少しコピペ→実行したら。いけました。1時間強、1300エントリ分をコピペして実行したら元に戻りまして。当日分のエントリを再投稿したら、ほぼ元通りになりました。ContactForm7のタグとか飛んでたけど、すぐ直せるレベルだったし。・・・しかし疲れた。なんだかんだで5時間くらいかかったよ・・・。
教訓&Tips。
・とりあえずバックアップ取ったつもりでも文字化けしてる可能性があるので、データベースを削除する前に一旦確認しろ!>当たり前だ。
・最悪手動でもなんとかなる。ググれば色々情報が出てくる情報化社会ありがとう。
・「どうせそうそうデータベース壊れたりしないよ」とか思ってても、一応きちんとバックアップを取っていれば、なにかの役に立つことはある。自動バックアップ、やっておいて損はない。
・MySQLを5.1に変更したら、今までエラーが出て動作しなかったBroken Link Checkerの最新版が作動するようになった&サイドバーで文字化けしていた部分が文字化けしなくなった。また、サイト自体の表示も若干高速化された。もしまだMySQL4.xをデータベースに使用しているのであれば、5.1への移行をお勧めします。
・ただし予期せぬ事態に対応出来るよう、バックアップの備えは万全に。
まぁそんな感じでどこか不具合あるかもしれません。もしなにかありましたらお教え下さいませ。
ピンバック: つやつや
ピンバック: つやつや
ピンバック: つやつや