mysql:14089
From: "Yoshinori Matsunobu" <"Yoshinori Matsunobu" <ymatsunobu@xxxxxxxxxx>>
Date: Wed, 4 Jul 2007 00:45:43 +0900
Subject: [mysql 14089] Re: レプリケーションが一瞬だけ遅れる
松信です。 > > ところで、MySQLのオンラインのマニュアルでは、 > > 「マスタとスレーブで同一の時計を使用していなくても問題ない。」 > > とあるのですが、 > > http://dev.mysql.com/doc/refman/4.1/ja/show-slave-status.html > > これは、今回のような場合には当てはまらないのですかね? > > 5.0.41のソースでSeconds_Behind_Masterを算出する部分は以下のようになってい ます。 > sql/slave.cc 2520行目 > --- > long time_diff= ((long)((time_t)time((time_t*) 0) > - mi->rli.last_master_timestamp) > - mi->clock_diff_with_master); > --- > 大ざっばに言うと、 > (スレーブの現在時刻)-(現在スレーブのSQLスレッドで実行中のSQLがマスタで発行 された時刻)-(マスタとスレーブの時刻差) > という式です。 > なので、マスタとスレーブの時刻差は考慮されているはずなのですが…。 (マスタとスレーブの時刻差)は、レプリケーションの開始時点での時刻差になるの で、 開始時点でのマスターとスレーブの時刻の同期が取れていて、 運用後の長期経過のうちに時間が大きくずれれば、 今回のような現象はあり得ます。 興味があれば、slave.ccの、 pthread_handler_t handle_slave_io(void *arg) の中のget_master_version_and_clock(mysql, mi)や、 そのすぐ後のwhile文を見てみてください。 ---- Yoshinori Matsunobu Senior Consultant MySQL AB, www.mysql.com MySQL Consulting Services: http://www-jp.mysql.com/consulting/
14084 2007-07-02 21:15 ["橋本健太" <kem@xxxx] レプリケーションが一瞬だけ遅れる 14085 2007-07-03 16:46 ┗["Katsuyuki Sakai" <s] 14086 2007-07-03 21:08 ┗["橋本健太" <kem@xxxx] 14087 2007-07-03 22:07 ┗["Katsuyuki Sakai" <s] 14088 2007-07-03 22:45 ┣[<kenrouse@xxxxxxxxxx] -> 14089 2007-07-04 00:45 ┗["Yoshinori Matsunobu] 14090 2007-07-04 01:51 ┗["Katsuyuki Sakai" <s] 14096 2007-07-05 00:45 ┗["橋本健太" <kem@xxxx]