TL;DR
- マスターに接続する(
--allow-on-master)場合、--throttle-control-replicas myhost1.com:3306,myhost2.com:3306で遅延監視対象を指定する- スレーブからbinlogを吸い上げてマスターに当て込む場合は、接続先のスレーブで遅延監視をする
- 閾値は
gh-ost --max-lag-millis 1000で指定する (デフォルト1500ミリ秒) SHOW SLAVE STATUSは叩かず、*_ghcテーブルに書き込んだハートビートの行と現在時刻の差分で計算する--test-on-replicaか--migrate-on-replicaの時だけSHOW SLAVE STATUSするっぽい
SHOW SLAVE STATUS叩いてないなーって思ったらそもそも叩かないっぽい。- コード上にあったから 使うのかと思ったけど、少なくとも吊るしの設定では使わないっぽい
- 代わりに
*_ghcテーブルからマスターでUPDATEがかかった時刻を取って、それと現在時刻を比較しているっぽい SHOW SLAVE STATUSを見るのは —test-on-replicaか—migrate-on-replicaの時だけ っぽい- 同じあたりのコード で
this.inspectorが登場するけど、inspectorは接続先のMySQL- ちなみに更新ステートメントを流す方の接続は
applier
- ちなみに更新ステートメントを流す方の接続は
- 代わりに
2019-04-16T07:13:51.784309Z 22 Query select value from `mysqlslap`.`_t1_ghc` where hint = 'heartbeat' and id <= 255
2019-04-16T07:13:52.784030Z 22 Query select value from `mysqlslap`.`_t1_ghc` where hint = 'heartbeat' and id <= 255
2019-04-16T07:13:53.784096Z 22 Query select value from `mysqlslap`.`_t1_ghc` where hint = 'heartbeat' and id <= 255
こんなレコードが入ってた。
slave1 [localhost] {msandbox} (mysqlslap) > SELECT * FROM _t1_ghc WHERE hint= 'heartbeat' AND id <= 255;
+----+---------------------+-----------+----------------------------------------+
| id | last_update | hint | value |
+----+---------------------+-----------+----------------------------------------+
| 1 | 2019-04-16 16:13:31 | heartbeat | 2019-04-16T16:13:31.979520869+09:00 |
+----+---------------------+-----------+----------------------------------------+
1 rows in set (0.00 sec)
今日はこれまで。
0 件のコメント :
コメントを投稿