GTID与MHA

MHA 基于binlog文件位置的复制

* Phase 3: Master Recovery Phase..
* Phase 3.1: Getting Latest Slaves Phase..
             Latest slaves (Slaves that received relay log files to the latest):
* Phase 3.2: Saving Dead Master‘s Binlog Phase..
             scp from [email protected]:/tmp/saved_master_binlog_from_192.168.0.50_3306_20140421201548.binlog to local:/var/log/masterha/app1.log/saved_master_binlog_from_192.168.0.50_3306_20140421201548.binlog succeeded.
* Phase 3.3: Determining New Master Phase.
* Phase 3.3: New Master Diff Log Generation Phase..
             scp from local:/var/log/masterha/app1.log/saved_master_binlog_from_192.168.0.50_3306_20140421201548.binlog to [email protected]:/tmp/saved_master_binlog_from_192.168.0.50_3306_20140421201548.binlog succeeded.
* Phase 3.4: Master Log Apply Phase..
* Phase 3: Master Recovery Phase completed.

* Phase 4: Slaves Recovery Phase..
* Phase 4.1: Starting Parallel Slave Diff Log Generation Phase..
* Phase 4.2: Starting Parallel Slave Log Apply Phase..

 Executed CHANGE MASTER.
* Phase 5: New master cleanup phease..

基于binlog文件位置的复制
    在Master宕机后会尝试从Master上拷贝binlog日志进行补偿   
    如果候选Master不拥有最新的relay log,会从拥有最新relay log的Slave上生成差异的binlog传送到候选Master并实施补偿  
    新Master的日志补偿完成后,同样采用应用差异binlog的方式将其它Slave和新Master同步后再change master到新Master
MHA+GTID

* Phase 3: Master Recovery Phase..
* Phase 3.1: Getting Latest Slaves Phase..
* Phase 3.3: Determining New Master Phase.
* Phase 3.3: New Master Recovery Phase..
             Fetching binary logs from binlog server 10.99.73.9..
             scp from [email protected]:/data/mysql/mha/saved_binlog_binlog1_20170221174620.binlog to local:/var/log/masterha/app1/saved_binlog_10.99.73.9_binlog1_20170221174620.binlog succeeded.
             Applying differential binlog /var/log/masterha/app1/saved_binlog_10.99.73.9_binlog1_20170221174620.binlog ..

* Phase 4: Slaves Recovery Phase..
* Phase 4.1: Starting Slaves in parallel..

* Phase 5: New master cleanup phase..

基于GTID的复制  

    如果候选Master不拥有最新的relay log,让候选Master连上拥有最新relay log的Salve进行补偿。  
    尝试从binlog server上拉取缺失的binlog并应用
    新Master的数据同步到最新后,让其它的Slave连上新Master并等待数据完成同步。并且可以给masterha_master_switch传入--wait_until_gtid_in_sync=1参数使其不等其它Slave完成数据同步,以加快切换速度。

GTID模式下MHA不会尝试从旧Master上拷贝binlog日志进行补偿,所以在MySQL进程crash而OS仍然健康的情况下,应尽量不要做主备切换而是原地重启MySQL,除非有其它能确保切换后不丢数据的措施             

参考

http://www.cnblogs.com/gomysql/p/3675429.html

https://www.ywnds.com/?p=8129

http://www.cnblogs.com/kevinhao/p/5516936.html

https://mp.weixin.qq.com/s/IF1Pld-wGW0q2NiBjMXwfg
时间: 2024-08-03 01:16:31

GTID与MHA的相关文章

与MySQL传统复制相比,GTID有哪些独特的复制姿势

前言 GTID(Global Transaction ID)是MySQL5.6引入的功能,可以在集群全局范围标识事务,用于取代过去通过binlog文件偏移量定位复制位置的传统方式.借助GTID,在发生主备切换的情况下,MySQL的其它Slave可以自动在新主上找到正确的复制位置,这大大简化了复杂复制拓扑下集群的维护,也减少了人为设置复制位置发生误操作的风险.另外,基于GTID的复制可以忽略已经执行过的事务,减少了数据发生不一致的风险. GTID虽好,要想运用自如还需充分了解其原理与特性,特别要注

mysql5.6基于GTID模式之高可用架构搭建-MHA(mha0.56)

一.测试环境部署: mysql1:192.168.110.131   作为master mysql2:192.168.110.132   作为slave mysql3:192.168.110.130   作为slave,同时作为MHA的管理机 虚拟IP:192.168.110.100 二.mysql主从环境搭建和MHA安装 1.mysql主从搭建自行搭建(基于GTID复制,打开log_bin,复制规则默认,复制所有库表),这里不再说明. 2.安装MHA节点软件:rpm -ivh mha4mysq

MySQL 5.6 GTID+MHA

MySQL+GTID_MHA MHA介绍 MHA(MasterHigh Availability Manager and Tools for MySQL),是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具,该工具仅适用于MySQLReplication(二层)环境,目的在于维持Master主库的高可用性.它是基于标准的MySQL复制(异步/半同步): MHA有两部分组成:MHAManager(管理节点)和MHA Node(数据节点); MHA Manager可以单独部署在一台独立

MHA+Atlas+mysql一主一从开启gtid安装配置与实验

各节点架构 (说明:生产环境有两个节点可以组成一套完整集群,我是测试环境,因此对于manager以及atlas和binlog server都是单点,如果生产环境,相应的将manager以及atlas和binlog server每个节点都部署即可) 10.80.8.89 mysql-master manager,node atlas 10.80.8.90 mysql-slave node binlog server 安装步骤 10.80.8.89操作命令 1.#增加mha用户 useradd mh

【MySql】——MHA+GTID+failover+binlog-server+Atlas

一.环境准备 1.mysql-db01 1 #系统版本 2 [[email protected] ~]# cat /etc/redhat-release 3 CentOS release 6.7 (Final) 4 #内核版本 5 [[email protected] ~]# uname -r 6 2.6.32-573.el6.x86_64 7 #IP地址 8 [[email protected] ~]# hostname -I 9 10.0.0.51 2.mysql-db02 1 #系统版本

maxscale配合MHA搭建读写分离的高可用架构(基于GTID replication主从架构,mysql5.6)

基于GTID的主从replication并配合MHA搭建高可用架构,请参考之前的博客:http://linzhijian.blog.51cto.com/1047212/1906434.这里只叙述如何在此基础上增加maxscale中间件,实现读写分离的功能. MaxScale是maridb开发的一个MySQL数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换.官方文档:https://mariadb.com/kb/en/mariadb-enterprise/about

Mysql MHA(GTID)配置(实操)

实现环境 centos6.7 MYSQL5.6.36 主:192.168.1.191 从1:192.168.1.145 从2:192.168.1.146 监测:放在从2上 192.168.1.146 虚拟IP:192.168.1.222 准备软件包:下载链接: https://pan.baidu.com/s/1jHYafcU 密码: irbv epel-release-6-8.noarch.rpm   (所有服务器上都要) mha4mysql-node-0.56-0.el6.noarch.rpm

MHA集群(gtid复制)和vip漂移

在上一片博客中,讲述了怎么去配置MHA架构!这片博客不再细说,只说明其中MySQL主从搭建,这里使用的是gtid加上半同步复制! 步骤与上一片博客一样,不同之处在于MySQL主从的搭建!详细的gtid搭建过程https://www.cnblogs.com/wxzhe/p/10055154.html 上一片博客中,把MySQL主从的搭建由filename和pos的过程改变为如下的基于gtid的过程就可以,因此不再详细说明,只展示gtid的搭建! 四台服务器分配如下: MHA管理节点: 10.0.1

MHA之Binlog Dump (GTID)僵尸进程清理

master存活的状态下切换 masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.0.101 --orig_master_is_new_slave --running_updates_limit=1000 不出意外的情况下,会报下面的错误: 查看源代码: 在新master上获取正在执行的进程,也就是show processlist操作.并且将获取到的