[前][次][番号順一覧][スレッド一覧]

mysql:9789

From: Yasumitsu Ito <Yasumitsu Ito <y-ito@xxxxxxxxxx>>
Date: Wed, 7 Jul 2004 15:33:36 +0900
Subject: [mysql 09789] レプリケーションスレーブの能動的な同期

伊藤と申します。
レプリケーションについてお聞きしたいことがあります。

レプリケーションスレーブが同期していないことを気づいたときに、
スレーブ側から能動的に同期を取りに行く方法を探しています。

[環境]
mysql-4.0.18-*.rpm  (mysql.comから取得したRPM)

*master
TurboLinux 8.0WS
常時接続 固定IP

*slave
VineLinux 2.6r4
ダイアルアップルータを介して 64Kで接続

マスター-スレーブ 間はインターネットを介しており、
stunnel-4.04にてSSL暗号化しています。
(ここではstunnelについては除外して書きます)

[問題点]
何らかの原因で、ネットワークが切断されるため、
同期がとれず、同期回復まで待たなければならない。
そこで、スレーブから能動的に同期をあわせたい。

[質問]
スレーブ側で

slave$ mysql --user=root --password=pass -e "show slave status"
slave$ mysql --user=slave_account --host=master --password=pass -e "show master status"

を行い、ポジションの違いを発見した場合に、

slave$ mysql_synchronise

の様な自作コマンドを発行して、強制的に同期をあわせる作業を行いたい。

たとえば、その中身を
slave mysql> slave stop;
slave mysql> slave start;
slave mysql> select master_pos_wait('master_log_file', master_log_pos);

などと考えるのですが、どうでしょうか?
強引な方法に感じるのですが。
もっとスマートな方法はあるのでしょうか?

LANケーブルを引っこ抜いてしまったあとに、
slave stop;
slave start;
を実行しても、すんなりと通ってしまったり、
逆に slave stop; を実行したときにプロンプトがかえってくるまでに
非常に多くの時間がかかったりと、
いまいち挙動が掴めていないのが現状です。

slave_net_timeout の時間を小さくする方法も考えられますが、
あまり小さな値では、無駄なトラフィックを生むだけのような気がします。
デフォルトでは3600秒になっているのですが、
たとえば、これを10秒などとしてしまうと、なにか弊害があったりするのでしょうか?

よろしくお願いいたします。


[前][次][番号順一覧][スレッド一覧]

->    9789 2004-07-07 15:33 [Yasumitsu Ito <y-ito] レプリケーションスレーブの能動的な同期  
      9790 2004-07-07 21:58 ┣["Ohashi Koji" <ohash] mysqldumpの出力結果を取り込もうとするとUnknwon command
      9804 2004-07-09 19:06 ┗["HIROSE, Masaaki" <h]                                       
      9805 2004-07-09 23:43  ┗[Yasumitsu Ito <y-ito]                                     
      9845 2004-07-14 00:22   ┗[Yasumitsu Ito <y-ito]                                   
      9866 2004-07-16 00:08    ┗["HIROSE, Masaaki" <h]