このサイトの検証環境でMySQLのレプリケーションの検証をしており、この本番環境にもレプリケーションを構築しようと考えておりましたが、昨年後半は何かと忙しく半年以上も放置しておりました。 手順もすっかり忘れてしまったので過去の備忘録を見ながら、以下の手順で検証環境のデータベースを更新しました。
①本番サイトのMySQLデータベースをコールドバックアップ
②検証環境に①のコールドバックアップをリストア
③検証環境(Master)とレプリケーションしているスレーブサーバでレプリケーション
③の時にレプリケーションがうまくいかずハマりました・・・スレーブサーバの設定を少し変更したのでそれが原因かと思いましたが、レプリケーション用のMySQLアカウントが無くなっていたのが原因でした。本番サイトのデータベースを検証サイトにリストアした際に消えてしまっていました。 以下、忘れていたレプリケーションの備忘録
■マスターサーバ SHOW MASTER STATUS; SHOW MASTER STATUS \G マスターバイナリーログのステータス情報 ※\Gにすると垂直方向に表示される
■スレーブサーバ SHOW SLAVE STATUS; SHOW SLAVE STATUS \G スレーブスレッドのステータス情報
以下でレプリケーション状態が確認できます。
Master_Log_File:(現在読み込んでいるマスタのバイナリログ)
Read_Master_Log_Pos:(現在読み込んでいるマスタのバイナリログの位置)
Slave_IO_Running:YES(I/O スレッドのマスタ接続状態)
Slave_SQL_Running:YES(SQLスレッドの実行状態)