参考:mysqldump使う場合はこちら
なお、InnoDBしかないDBのdumpは
mysqldump --quote-names --skip-lock-tables --single-transaction --flush-logs --master-data=2 > dump.sql
MyISAMも含まれるDBのdumpは
mysqldump --quote-names --flush-logs > dump.sql
となる。
■マスター側作業
スレーブがマスターへ接続するためのアカウントを作成 。
mysql> GRANT REPLICATION SLAVE ON *.* TO repl@10.11.123.45 IDENTIFIED BY 'repl'; # 10.11.123.45はスレーブのIP
データディレクトリを固める。
mysql> FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; <- ここでFileとPositionをメモしておく # cd /usr/local/mysql # tar zcvf ~/var.tgz ./var UNLOCK TABLES; <- ロック解除
scpでスレーブにvar.tgzを転送しておく。
■スレーブ側作業
スレーブのデータベースを止める。
# /etc/init.d/mysql-slave stop
スレーブのデータディレクトリを上書きする。
# cd /usr/local/mysql-slave # mv var var.bak ←念のためのバックアップ。作業が終わったら消す。 # tar zxvf ~/var.tgz --same-owner
mysql-game-slave/etc/my.cnf を設置し、server-id を適当な値に設定する。
スレーブの起動。
# /etc/init.d/mysql-slave start
初期設定
mysql> CHANGE MASTER TO MASTER_HOST='10.11.123.44', ←マスターのIP MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_LOG_FILE='mysql-bin.000007', ←メモっておいたFileの値 MASTER_LOG_POS=1816; ←メモっておいたPositionの値
スレーブでレプリケーションを開始する。
mysql> START SLAVE; mysql> SHOW SLAVE STATUSG ←状態確認。
詳細は最速RDBMS構築ガイドの「11-3 レプリケーション」を参照のこと。
コメントを残す