* Phase 1: Configuration Check Phase..
檢查當前存活實例及主從同步狀態,是否可以進行切換
* Phase 1: Configuration Check Phase completed.
* Phase 2: Dead Master Shutdown Phase..
去掉VIP
如果配置了shutdown_script,在VIP去掉後執行shutdown_script
* Phase 2: Dead Master Shutdown Phase completed.
* Phase 3: Master Recovery Phase..
* Phase 3.1: Getting Latest Slaves Phase..
找出latest slave,根據Read_Master_Log_Pos最多,查看當前位置點
* Phase 3.2: Saving Dead Master''s Binlog Phase..
根據latest上位置點,從dead master 提取差異binlog
將提取出來的差異日誌scp到監控節點
* Phase 3.3: Determining New Master Phase.. #檢測新主
檢查latest slave的relay log,是否可以恢復其他slave
根據config裏面配置,選擇出new master
* Phase 3.3: New Master Diff Log Generation Phase..
從latest slave上獲取差異relay log(因實例日誌裏面new master就是latest slave,所以不需要此步操作)
監控節點將3.2步接收到的差異binlog,發送到new master上面
* Phase 3.4: Master Log Apply Phase..
應用diff realy log,此時new master與latest slave數據一致
應用監控節點發過來的差異日誌,此時new master數據已經與dead master一致
查看new master binlog位置,同時生成CHANGE MASTER語句,所有slave同步從此位置開始
添加VIP
* Phase 3: Master Recovery Phase completed.
* Phase 4: Slaves Recovery Phase..
* Phase 4.1: Starting Parallel Slave Diff Log Generation Phase..
slave從latest slave上獲取差異relay log,生成文件並scp到slave本地
* Phase 4.2: Starting Parallel Slave Log Apply Phase..
監控節點將3.2步接收到的差異binlog,發送到slave上面
將在latest slave上面獲取到的差異relay log合成到total_binlog_for_xxx
檢查差異binlog的120位之前是否有效,通常120之前爲binlog頭信息和rotate信息,無實際意義,只合成有效日誌
應用上面合成的日誌
reset slave &&change master
檢查所有slave是否recovery成功
* Phase 5: New master cleanup phase..
在new master上面,清空複製信息