今天在設定 Mariadb master-master replication 來當系統備援方案,一開始都蠻順利的,可是突然想到一個問題......
當系統原先連線到 master_a 讀寫,有天 master_a 掛了,系統會自動切換成讀寫 master_b,可是當 master_a 修復好,如何確認 master_b 在 master_a 掛掉期間新增的資料已經完全 sync 到 master_a 了?
畢竟沒確認同步狀態讓系統自己切回去 master_a 缺乏一些歷史資料,導致系統不正常 user 就會唉唉叫了......
查了一下,可以檢查
show slave status\G
...
Seconds_Behind_Master =0;
...
如果是 0 就沒問題
但實際測試發現正在同步時,它也是 0 (還是少開了參數?)
不然另外的方案就必須用第三方工具 pt-table-checksum 或是自己寫個程式確認兩邊 table count
但是 Mariadb 本身應該有辦法確認現在同步狀態吧?不然它們彼此如何同步的?
請問什麼命令可以讓我知道 Master 彼此是已經同步完成了(先不管驗證資料問題)
有什麼關鍵字可以讓小弟去查詢的?感謝各位大大
Mariadb version:10.1.41
我是不知道要用什麼方法去確認兩個 master 有沒有互相同步完成,
但我會用笨方法,
開一台 slave_a 單向同步 master_a
開一台 slave_b 單向同步 master_b
然後,寫一隻程式,把這四台比一比,
理論上說,應該會一模一樣才對。
只要其中有一台不一樣,就是有問題啦。