2011年6月 6日

[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@xxxxx>
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


投稿者 xml-rpc : 2011年6月 6日 14:02
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/104499
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。