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 件のコメント :
コメントを投稿