WordPress本番環境のデータを検証環境でリストア

この現在公開している本番Webサーバの他に自宅には同じ環境の検証サーバがあります。
検証環境でテストを行う際、一度本番環境のデータと合わせることがあるので、本番環境のデータを検証環境でリストアする作業が発生します。
検証環境では当然サーバのホスト名やIPアドレスが異なるのでその辺りで修正が必要になり、今までも備忘録を残してきましたが、現在はWebサーバとDBサーバも切り離しDBもマスターとスレーブが存在しストレージエンジンも変更している(InnoDB)ので、今までの備忘録の手順通りにはいかなくなりました。

MySQL レプリケーション備忘録
WordPressのWebとDB切り離し

そこで再度現在の環境でWordPress本番環境のデータを検証環境でリストアする際の手順を残します。

■環境
[本番環境]
・Webサーバ
・DBサーバ(マスター)
・DBサーバ(スレーブ)

[検証環境]
・Webサーバ
・DBサーバ(マスター)
・DBサーバ(スレーブ)

[DB環境]
・ストレージエンジン:InnoDB
・レプリケーション
・トランザクション

■手順
1.本番環境のapache、mysqlを停止
2.本番環境のWebサーバでWordPressのデータをバックアップ
3.本番環境のDBサーバ(マスター)でMySQLのデータをコールドバックアップ(次回mysqlインスタンス起動時のバイナリログ開始位置を確認しておく)
4.検証環境のapache、mysqlを停止
5.手順3で取得したWordPressデータベースを検証環境のDBサーバ(マスター)でリストアする。

【注意】WordPressデータベース内にあるwp_options.*のファイルは検証環境のものをそのまま使用すること。※ホスト・ドメイン名の情報が入っているため。

6.手順3で取得したInnoDBとバイナリログを検証環境のDBサーバ(マスター)でリストアする。
7.手順2で取得したWebサーバのWordPressのデータを検証環境のWebサーバでリストアする。
8.手順7でリストアしたWordPressのデータ内のwp-config.phpファイルでDBの接続情報を修正する。

/** MySQL のホスト名 */
define('DB_HOST', 'www.eastforest.jp');
↓
define('DB_HOST', '検証環境のサーバ');

9.検証環境のDBサーバ(マスター)でmysqlを起動する。
10.検証環境のWebサーバでapacheを起動する。
11.ブラウザで検証環境のWebサイトが表示されることを確認する。
12.検証環境のDBサーバ(マスター)のバックアップを検証用DBサーバ(スレーブ)でリストア
13.検証環境のDBサーバ(スレーブ)でmysqlを起動する。
※master.infoがある場合はインスタンス再起動でマスターへ接続が行われるため、レプリケーションを一度停止する。
(2013/11/12 追記)

mysql>STOP SLAVE;

14.検証環境のDBサーバ(スレーブ)でレプリケーションを再開するため一度リセットする。

mysql>reset slave;

15.検証環境のDBサーバ(スレーブ)でCHANGE MASTER TO 文を実行しレプリケーションを再開する。

【参考】MySQL 5.x レプリケーション設定

以上で本番環境のデータを検証環境でリストアできます。
ただし残っている問題がありブログ内で載せた画像のリンク先URLが本番環境のURLのままです。
wp_postsテーブルのpost_contentのwww.eastforest.jpを修正すればいいんだけど、どう修正すればいいのか…
UPDATE文で値の一部だけ指定して修正とか出来るのかな…

20130504_MySQLWorkbench

このカラムにはブログのすべての文章が入っているようなので、修正箇所を含めた全文をUPDATEっていうのはあまりやりたくないなぁ。
会社のDBできる人に聞いてみよう…