mysqlのslaveを作成する

マスター側をマスターに設定する

次の項目をmy.cnfに書き足し、mysqldを再起動する。

server-id=n
log-bin=/var/lib/mysql/mysqld-bin
set-variable=expire_logs_days=7 (入れておかないといつまでもバイナリログが残る)

マスター側でログ順序を確認しつつmysqldumpする (ロック関係とか要調査)


show master status; で File(バイナリログ名) と Position(ログ位置) をチェックする。
mysqldump -u root -p -database ${database} > dump.sql

スレーブ側にdumpファイルを転送

scpとか

スレーブ側のmysqlを設定する


server-id=11
log-bin=/var/lib/mysql/mysqld-bin
set-variable=expire_logs_days=7
relay-log=/var/lib/mysql/relay-bin # リレーログの場所も明示しないと /var/run/mysql の下にいっちゃう

スレーブ側でインポート

mysql -u root -p < dump.sql

スレーブ側をスレーブとして設定する

change master to master_host=${MASTER_HOST} master_user=${MASTER_USER} master_password=${MASTER_PASSWORD} master_log_file=${LOG_FILE_NAME} master_log_pos=${LOG_POS};
start slave;

参考: http://dev.mysql.com/doc/refman/5.1/ja/replication-howto.html
参考: http://www.sssg.org/blogs/naoya/archives/1240
参考: http://arena.hyogo-dai.ac.jp/~kawano/?Install%20Log/CentOS5/MySQL_repl

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です