MySQLのレプリケーションをスナップショットバックアップから再構築

シェアする

  • このエントリーをはてなブックマークに追加

たいそうな話ではないんですが、MySQLのレプリケーションをスナップショットバックアップから再構築する方法のメモです。 公式ドキュメントにも書いてあるし、本当に備忘録。

前提

マスター側でスナップショットバックアップを取っている – FLUSH TABLES WITH READ LOCK; して – SHOW MASTER STATUS; して – LVMなどでsnapshot取得して – UNLOCK TABLES; して 取得したファイルベースのデータ一式がある場合を想定してます。 スナップショットバックアップを取得してから作業時点までのデータがバイナリログで保存されていることが条件になります。 CentOS使いなので、他の環境では細部が違うかもしれないのはご愛敬。

マスター側での作業

ありません

スレーブ側での作業
  • MySQL停止
# /etc/rc.d/init.d/mysqld stop
  • データコピー
# mv /var/lib/mysql /tmp/mysql.orig
# cp -rp /tmp/mysql-snap /var/lib/mysql
# chown -R mysql.mysql /var/lib/mysql
  • MySQLの起動設定をちょっと修正 vi /etc/my.cnf
skip-slave

↑を追記 – MySQL起動

# /etc/rc.d/init.d/mysqld start
  • レプリケーション設定を調整 ↓SHOW MASTER STATUSの出力をみて調整。その後レプリケーション開始
mysql> CHANGE MASTER TO
MASTER_LOG_FILE='mysql-bin.000056',
MASTER_LOG_POS=188712637;
mysql> START SLAVE;
結果確認
mysql> SHOW SLAVE STATUS \G;

して

略
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
略
Seconds_Behind_Master: 0

になって、レプリケーションが追いついていることが確認できればokです。

あとしまつ

MySQLの起動設定をちょっと修正 vi /etc/my.cnf

skip-slave

↑を削除

ads

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

ads