一 orc系列
1 orc切換模式常用的是主動觸發高可用切換(例行維護),被動高可用切換(mysql負載很高,mysql主庫down掉)
2 orc在以下情況不會發生切換
- 從庫發生故障,主從複製異常,從庫掛掉,從庫出現延時
- 主庫hang住,主庫出現too manay connetions(因爲orc建立的長連接,即便連接打滿,也不會出現異常),orc到主庫網絡不通
3 發現從庫利用的是檢測dump線程的地址
4 切換流程
- 檢測原主,出現故障( orc訪問master不通(一次確認),不能訪問slave或者所有slave-io_thread異常(二次確認))
- 選擇候選主庫(必須是直連 從庫,規則允許當主,延時小於閾值)
- 設置原主只讀
- 候選主庫等待延時日誌應用完成
- 打開候選主庫的讀寫
- 將原主變成新主的從庫
- 調用hook腳本,完成其他一系列工作,比如vip綁定等
5 orc一些問題
1. 實際生產沒有遇到過切換失敗的場景
2. 即便開了半同步複製,orc切換依然可能丟數據,因爲orc判斷最新binlog位點的方式是 ExecBinlogCoordinate,通過判斷最新執行的binlog位點信息,有可能有這一種情況,io_thread出現網絡問題,導致接收到的binlog並不完整,最終導致出現數據差異化
二 災備架構系列
三