サーバーマシンのクラッシュでクラウドサーバーインスタンスが消滅。
そんなこと滅多にあるもんじゃないと思ってたけど、現実に起こってしまった。
幸いというか、サーバー機器のハードディスクだかミラーディスクだかから、クラッシュ時のディレクトリ構成とファイルが復元できた。
今日はそのデータファイルを使って、ワードプレスをインストールしていたCentOSサーバーをブログの過去記事含めて復旧させた。
また起こらないとも限らない、というかこのレンサバ絶対また起こしそうだわ、ということで今日やった手順をまとめておきます。
【前提】
・サーバーインスタンス(CentOS)は初期化状態
・クラッシュ直前のバックアップ(ディレクトリ構造とファイルの生データ)を所持
【概要】
・サーバーに必要なアプリケーションのインストール
・トップページのHTMLや、ワードプレスのルートディレクトリをコピー
・生データからMYSQLのデータ復元
・クラッシュしたテーブルの修復
・いったんダンプしたデータから再度リストアして完了
【詳細】
■ サーバーに必要なアプリケーションのインストール
これは、クラッシュ直前のファイル群の中にある、/root/.bash_historyファイルにサーバー構築の手順が逐一記録されている。
コマンドがテキストで列挙されているので、そのまま手順を追った。
おもに、yumの更新、PHPとMYSQLのインストール、その他、開発ツールのインストールとなる。
■ トップページのHTMLや、ワードプレスのルートディレクトリをコピー
バックアップからコピーする。
/etc/hppd/conf/httpd.confもコピーする。
■ 生データからMYSQLのデータ復元
こちらの記事を参照
いったんファイル権限をオープンにしてセキュリティより作業優先にする。
これで一応、ワードプレスが動くようになるが、ファイル権限などがセキュリティ上問題があるので、ダンプ→リストアすることにより、正常なファイル権限に戻す。
■ クラッシュしたテーブルの修復
ダンプの際に下記のエラーメッセージが出て止まる場合は、クラッシュしたテーブルの修復が必要になる。
mysqldump: Error 1194: Table ‘wp_comments’ is marked as crashed and should be repaired when dumping table `wp_comments` at row: 533
テーブルの修復は下記の手順。
> service mysqld stop
> cd /var/lib/mysql/wordpress
> myisamchk -r /var/lib/mysql/wordpress/wp_comments.MYI
■ いったんダンプしたデータから再度リストア
ダンプは下記のコマンド
> mysqldump –single-transaction -u root -p wordpress > /tmp/mysqldump_wordpress.dump
リストアは下記のコマンド
> mysql -u root -p wordpress < /tmp/mysqldump_wordpress.dump