心の傷も癒えてきたので、備忘録がてら今回のサイト移転の
顛末を書いておこうと思う。
なぜなら、過去に学ばない者は愚か者だからだ。
(注:管理人は過去にも同じような経験をしています)
悲劇発生
サイトに障害が起きた。
なかなか復旧しないなーと思っていたら、データベースにログインできない。
ログインできないというか、データベースが存在しない。
すっからかん。
(´・ω・`)ショボーン
うむらうす本館
- Movable Typeで運営
- 個別エントリーのファイルは残っているがデータベースがなくなった
→WEB1.0化を達成!うれしくない!
7月時点のバックアップが残っていたのでインポートしようとしたら、
Movable Typeさんに「ファイルが大きすぎるでござる」と言われた。
自分が作ったバックアップファイルに文句言うな!
しかしインポートできないと、データベースが復活しない。どうしよう。
泣きそうになりながら、解決可能な問題か調査。
結論:ムリ!わーい!
泣きながら1500個ぐらいあるHTMLファイルを加工、必要部分を結合して
インポート用のファイルを作成。Jedit Xさんがマルチファイル置換で大活躍。
正規表現で、検索した文字列の入れ替えとかもできちゃうと知る。
→正規表現:とことん!ホームページ
ファイルの文字コードの罠にハマったりしながら、なんとかインポートできた。
ここまでで2週間以上経っていたような。
うむらうす -ANNEX
- WordPressで運営
- WordPressに6月までの記事をインポートしたところ、
個別エントリーだけでなく月別アーカイブなども動くようになった! - ついでに、動かなくなっていたWordTwitも動いた
- なので、別館に関しては失われた3ヶ月分を、
Googleキャッシュから泣きながら移すだけで済んだ
バックアップ
今後のデータベースファイルのバックアップby方法を検証、確立させておく必要あり。
なぜなら、過去に学ばない者は愚か者だからだ。
(注:今回のような事故は2回目です)
WordPress:WordPress Database Backupで。
ツール→バックアップ→定期バックアップ→週1回 をチェック
で、1週間ごとにバックアップファイルがメールで送られてくるようにできた。
Movable Type 5:自動バックアッププラグインが見つからなかったので、
MySQLのバックアップを、cron+シェルスクリプトで行うことにした。
シェルスクリプトは以下のような感じ。
mysqldumpのパスはマニュアルにはないが、 /usr/local/bin/ にある。
(参考:ハッスルサーバーでのWP-DBManagerの使い方)
#!/bin/sh
bak=`date +%y%m%d`
/usr/local/bin/mysqldump -a --opt --host=ホスト名 -c --user=MySQLユーザ名 --password=パスワード データベース名 | /usr/bin/gzip | /usr/bin/uuencode 好きな名前$bak.sql.gz | /usr/bin/mail -s "好きな名前$bak.sql.gz" 送信先メールアドレス
mysqldumpのオプションは以下を参照。
→MySQL :: MySQL 4.1 リファレンスマニュアル :: 4.9.7 mysqldump(テーブル構造とデータのダンプ)
cronでのファイル名の指定は、ルート直下に置く場合は以下の通り。
/home/umu/public/ファイル名
publicを知らずにnot foundを連発しましたこんにちは!
ということで、なんとか自動バックアップの体制も整ったし、
これでいつサーバが飛んでも大丈夫だ!いつでも来い!
って言っておけばしばらく来ないだろう。
というか、来なくていいです。ハイ。
良い子のみんなは、バックアップはちゃんと取ろうね!
約束だぞ!