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]