mysql:15602
From: Seiichirou Hiraoka <Seiichirou Hiraoka <flathill@xxxxxxxxxx>>
Date: Mon, 06 Jun 2011 14:02:02 +0900 (JST)
Subject: [mysql 15602] Re: レプリケーション用スレーブの構築方法
平岡です。 MySQL の公式マニュアルを見直したところ、8) の時点では --skip-slave によりレプリケーションをスキップして起動し、9) のバイナリログの適用 は行わなくて良いみたいですね。 http://dev.mysql.com/doc/refman/5.1/ja/replication-howto.html どうもお騒がせしました。 - flathill From: Seiichirou Hiraoka <flathill@xxxxxxxxxx> Subject: [mysql 15601] レプリケーション用スレーブの構築方法 Date: Mon, 06 Jun 2011 10:56:48 +0900 (JST) > 平岡と申します。 > > 2 台の MySQL でマスタ、スレーブ運用をしております。スレーブで何らかの問題 > が起きて再度スレーブを構築する手順についてコメントを頂けますと幸いです。 > > - 環境 > > . server1 (マスタ) > OS: CentOS 5.5 (共通) > MySQL 5.5.12 (共通) (手動でコンパイル) > /etc/my.cnf > > server-id = 1001 > > レプリケーション用ユーザ repl を登録。 > > . server2 (スレーブ) > /etc/my.cnf > > server-id = 1002 > > レプリケーション用ユーザ repl を登録。 > > - 手順 > 時間を短縮するため、mysqldump によるダンプリストアではなくディレクトリを直接 > コピーする方法で以下のようにテストを行っています。 > > 1) スレーブ > MySQL を停止。 > /etc/init.d/mysql top > > 2) マスタ > FLUSH TABLES WITH READ LOCK; > > 3) マスタ > Filename と Position を確認。 > SHOW MASTER STATUS; > > 4) スレーブ > データベースディレクトリを削除。 > rm -Rf /usr/local/mysql/data > > 5) スレーブ > バックアップをスレーブにコピー > ssh master "(cd /usr/local/mysql; tar cvfp - data)" | (cd /usr/local; tar xvfp -) > > 6) マスタ > UNLOCK TABLES; > > 7) スレーブ > 不要なファイルを削除。 > rm /usr/local/mysql/data/*.err > rm /usr/local/mysql/data/*.pid > > 8) スレーブ > MySQL を起動。 > /etc/init.d/mysql start > > 9) スレーブ > バイナリログの適用。 ← (a) > /usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.0* | \ > /usr/local/mysql/bin/mysql -u root -p > > 10) スレーブ > STOP SLAVE; > CHANGE MASTER TO .... (上で確認した Filename と Position を指定) > SET GLOBAL READ_ONLY = 1; > START SLAVE; > > このようにする事でうまく動いているように見えますが、上記 (a) の箇所に > ついてコメントを頂きたく思います。 > > (a) の箇所にて、バイナリログを適用する必要はあるのでしょうか。 > バイナリログに記録されている内容は既にデータベースに反映されているので > あれば、二重に適用するようになってしまうと考えています。 > > その他手順中で問題と思われる箇所がありましたら、教えて下さい。 > > 以上、よろしくお願いします。 > > - flathill
15601 2011-06-06 10:56 [Seiichirou Hiraoka <] レプリケーション用スレーブの構築方法 -> 15602 2011-06-06 14:02 ┗[Seiichirou Hiraoka <]