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

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

选择新主库顺序

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

简单而言,选择新主库:

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

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

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

参考链接:

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

MySQL MHA候选主库选择的更多相关文章

  1. MYSQL MHA

    MYSQL MHA 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于 Face ...

  2. MySQL MHA 搭建&测试(环境:CentOS7 + MySQL5.7.23)

    MySQL MHA架构介绍: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Face ...

  3. MySQL MHA+Keepalived

    一.MHA的简单介绍MHA是由perl语言编写的,用外挂脚本的方式实现mysql主从复制的高可用性.MHA可以自动检测mysql是否宕机,如果宕机,在10-30s内完成new master的选举,应用 ...

  4. CENTOS6.6 下mysql MHA架构搭建

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是自己搭建的一篇mysql MHA文章 前面的安装步骤基 ...

  5. 基于MySQL+MHA+Haproxy部署高可用负载均衡集群

    一.MHA 概述 MHA(Master High Availability)是可以在MySQL上使用的一套高可用方案.所编写的语言为Perl 从名字上我们可以看到.MHA的目的就是为了维护Master ...

  6. 【线上测试之后的应用】基于MySQL+MHA+Haproxy构建高可用负载均衡数据库集群(详解)

    这里我们先介绍一下MHA是什么,其次就是它的应用与测试,同时为了大家呈现了数据备份案例,最后总结了使用情况以及注意事项和解决办法 一.MHA 概述 MHA(Master High Availabili ...

  7. MySQL MHA高可用集群部署及故障切换

    一.MHA概念MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件.MHA 的出现就是解决MySQL 单点的问题.MySQL故障切换过程中 ...

  8. MySQL MHA 高可用集群部署及故障切换

    MySQL MHA 高可用集群部署及故障切换 1.概念 2.搭建MySQL + MHA 1.概念: a)MHA概念 : MHA(MasterHigh Availability)是一套优秀的MySQL高 ...

  9. 搭建MySQL MHA高可用

    本文内容参考:http://www.ttlsa.com/mysql/step-one-by-one-deploy-mysql-mha-cluster/ MySQL MHA 高可用集群 环境: Linu ...

随机推荐

  1. 爬虫数据提取之JSON与JsonPATH

    数据提取之JSON与JsonPATH JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适 ...

  2. python自动化接口测试

    前几天,同组妹子说想要对接口那些异常值进行测试,能否有自动化测试的方法.仔细想了一下,工具还挺多,大概分析了一下: 1.soapui:可以对接口参数进行异常值参数化,可以加断言,一般我们会加httpc ...

  3. Javascript判斷function是否定義

    jQuery可以用 isFunction() 來進行判斷 如果僅使用Javascript可以使用以下的方法 function isFunction(fn){ return typeof fn === ...

  4. 使用命令行操作vmware esxi -- linux

    为实现自动化,发现了两种命令行工具,一是开启vmware esxi后用xshell等连接工具去连接esxi后台:二是安装powercli连接.本文将介绍一些常用的命令去操作vmware esxi 本文 ...

  5. PHP变量回收

    PHP变量回收1 离开页面2 unset

  6. Ng-Alain-mock 运用

    Ng-Alain Ng-Alian 是基于 Antd 实现的一个前端框架.它基于 Angular 和 NG-ZORRO,在此基础上进行进一步封装,是中后台的前端解决方案,为我们提供更多通用性业务模块, ...

  7. PHP设计模式 - 命令模式

    命令模式:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”.但在某些场合,比如要对行为进行“记录.撤销/重做.事务”等处理,这种无法抵御变化的紧耦合是不合适的.在这种情况下,如何将“ ...

  8. [转帖]Shell运维手册

    shell实例手册    https://github.com/liquanzhou/ops_doc   0 说明{       手册制作: 雪松   更新日期: 2018-09-11       欢 ...

  9. netcore 步骤

    1.创建工程目录 d:\project 2.进入目录,创建解决方案 dotnet new sln 3.确定开发版本 dotnet --list-sdks //列出sdk版本 dotnet new gl ...

  10. IUrlHelper ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

    ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of ...