MySQL MHA候选主库选择

MHA在选择新主库时,会将所有存活的从库分为下面几类:

存活从库数组:挑选所有存活的从库
最新从库数组: 挑选Master_Log_File+Read_Master_Log_Pos最高的从库
优选从库数组:挑选参数candidate_master=1的存活从库
非备选从库数组:挑选满足下面条件:
  1、参数no_master=1的从库
  2、未开启binlog的从库
  3、复制延迟超过一个文件位置(Master_Log_File>Relay_Master_Log_File)或100000000个位点(Read_Master_Log_Pos>Exec_Master_Log_Pos+100000000)的从库

选择新主库顺序

1:当“非备选从库数组”和“优选从库数组”中数量为0时,选择“最新从库数组”中第一个从库
2:选择第一个存在于”优选从库数组“和”最新从库数组“但不存在于“非备选从库数组”的从库
3:选择第一个存在于“优选从库数组”但不存在于“非备选从库数组”
4:选择第一个存在于“最新从库数组”但不存在于“非备选从库数组”
5:选择第一个存在于“存活从库数组”但不存在于“非备选从库数组”

简单而言,选择新主库:

1、所有“非备选从库”都不会被选择成为新主库。

2、当存在”优选从库“时,选择”优选从库“中获得“主库BINLOG最多”从库为新主库。

3、当不存在”优选从库“时,选择“主库BINLOG最多”的从库成为新主库。

参考链接:

https://blog.csdn.net/n88lpo/article/details/79910203

原文地址:https://www.cnblogs.com/gaogao67/p/11106328.html