测试环境

节点1 172.16.200.231 6666               master        
节点2 172.16.200.27 6666 slave1                       
节点3 172.16.200.60 5200   slave2       

安装软件包

节点3:安装MHA-manager

wget http://www.mysql.gr.jp/frame/modules/bwiki/index.php?plugin=attach&pcmd=open&file=mha4mysql-manager-0.56-0.el6.noarch.rpm&refer=matsunob

依赖包

yum -y install perl-DBD-MySQL

所有节点:安装MHA-note

wget http://www.mysql.gr.jp/frame/modules/bwiki/index.php?plugin=attach&pcmd=open&file=mha4mysql-manager-0.56-0.el6.noarch.rpm&refer=matsunobu

依赖包

yum -y install perl-DBD-MySQL
yum -y install perl-Config-Tiny
yum -y install perl-Log-Dispatch
yum -y install perl-Parallel-ForkManager

配置

[root@python /]# cat /etc/mha/test.cnf

[server default]

# working directory on the manager

manager_workdir=/var/log/masterha/test

# manager log file

manager_log=/var/log/masterha/test/test.log

# working directory on MySQL servers

remote_workdir=/var/log/masterha/test

master_binlog_dir=/data0/mysql/6666_test

repl_user=repl

repl_password='repl'

ssh_user=root

[server1]

hostname=172.16.200.231

port=

user=root

password=''

[server2]

hostname=172.16.200.60

port=

user=root

password=''

[server3]

hostname=172.16.200.27

port=

user=root

password=''

注:gtid模式可以设置[binlog1]模块,此处已开启gtid模式但是没有设置binlog server

Requirement

  • SSH认证
  • candidate masters要开启log-bin
  • 关闭自动清理relay log的选项,改为定期使用MHA note提供的脚本purge_relay_logs手动进行

0 5 * * * app /usr/bin/purge_relay_logs --user=root --password=PASSWORD --disable_relay_log_purge >> /var/log/masterha/purge_relay_logs.log 2>&1

  • Do not use LOAD DATA INFILE with Statement Based Binary Logging

If you want to use LOAD DATA, SET sql_log_bin=0; LOAD DATA … ; SET sql_log_bin=1; is more recommended approach.

  • 都需要有复制账号

验证

masterha_check_ssh --conf=/etc/mha/test.cnf
masterha_check_repl --conf=/etc/mha/test.cnf

注:通过打印perl代码可以看出每台主机先ssh到自己再ssh到其他几点上进行验证,所以除了各节点之间进行秘钥配置外,还需要各自对自己进行秘钥设置

检查通过之后启动manager

masterha_manager --conf=/etc/mha/test.cnf  

查看manager状态,已正常启动,实时监测各节点

masterha_check_status --conf=/etc/mha/test.cnf
test (pid:20483) is running(0:PING_OK), master:172.16.200.231

开始演练测试

手动failover,需要先关闭manager 监控

masterha_stop --conf=/etc/mha/test.cnf
masterha_master_switch --master_state=dead --conf=/etc/mha/test.cnf

过程:

  • 检查是否存在全局配置文件/etc/masterha_default.cnf
  • 读取指定的配置文件,监测各节点的数据库状态以及GTID是否开启
  • FLUSH NO_WRITE_TO_BINLOG TABLES
  • 检查复制状态
  • 检查配置文件中是否指定candidate masters
  • 如果没有指定,则将应用日志最新的slave提升为master
  • old master上执行FLUSH TABLES WITH READ LOCK
  • 获得old master上的当前的binlog文件号和position
  • new master应用中继日志到和old master数据一致
  • 其他的slave应用所有的中继日志
  • 其 他的slave指向new master:CHANGE MASTER TO MASTER_HOST='172.16.200.60', MASTER_PORT=5200, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='xxx';

MySQL高可用之MHA搭建的更多相关文章

  1. mysql高可用架构MHA搭建(centos7+mysql5.7.28)

    无论是传统行业,还是互联网行业,数据可用性都是至关重要的,虽然现在已经步入大数据时代,nosql比较流行,但是作为数据持久化及事务性的关系型数据库依然是项目首选,比如mysql. 现在几乎所有的公司项 ...

  2. MySQL高可用方案MHA自动Failover与手动Failover的实践及原理

    集群信息 角色                             IP地址                 ServerID      类型 Master                     ...

  3. MySQL高可用方案MHA在线切换的步骤及原理

    在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小. MHA就提 ...

  4. 【DB宝42】MySQL高可用架构MHA+ProxySQL实现读写分离和负载均衡

    目录 一.MHA+ProxySQL架构 二.快速搭建MHA环境 2.1 下载MHA镜像 2.2 编辑yml文件,创建MHA相关容器 2.3 安装docker-compose软件(若已安装,可忽略) 2 ...

  5. MySQL高可用之MHA (转)

    MySQL高可用之MHA MHA简介 MHA是由日本人yoshinorim(原就职于DeNA现就职于FaceBook)开发的比较成熟的MySQL高可用方案.MHA能够在30秒内实现故障切换,并能在故障 ...

  6. mysql高可用方案MHA介绍

    mysql高可用方案MHA介绍 概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10-30秒内),完成故障切换,部署MHA, ...

  7. MySQL高可用方案--MHA部署及故障转移

    架构设计及必要配置 主机环境 IP                 主机名             担任角色 192.168.192.128  node_master    MySQL-Master| ...

  8. MySQL高可用之MHA的搭建 转

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

  9. MySQL高可用之MHA的搭建

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

随机推荐

  1. 重置样式 - Eric Meyer的原版

    重置样式就是一组CSS声明,用来覆盖不同浏览器渲染HTML元素时的各种默认样式.重置样式一般会被加入到主样式文件的开头,用来将各个浏览器的自有默认样式重置成统一表现,确保样式表中后续追加的样式在不同浏 ...

  2. php + Bootstrap-v3-Typeahead 自动完成组件的使用

    Bootstrap 中的 Typeahead 组件就是通常所说的自动完成 AutoComplete,类似百度.谷歌等搜索提示:输入关键词出现相应的下拉列表数据. 是Bootstrap-3-Typeah ...

  3. IOS Xcode7 新建PCH文件

    第一步:新建文件找到iOS中的Othere点击PCH File 点击Next 第二步:修改文件名为当前工程名(一般与工程名同名),勾选Targets,点击create创建 第三步:如图选中红框中的路径 ...

  4. 获取ip

    需要引用System.Web http://stackoverflow.com/questions/4879837/smart-way-to-get-the-public-internet-ip-ad ...

  5. Giving Data Backup Option in Oracle Forms 6i

    Suppose you want to give the data backup option in Oracle Forms application to some client users, wh ...

  6. win7下的ipython没有的问题

    在笔记本上安装python2.7后,执行python是可以的,但是ipython却不行. 一.问题排查 在网上搜索了看到python与ipython的区别: 例如:ipython有tab补全功能,然后 ...

  7. AC自动机模板

    贴份模板 胡大神和崔大神的组合模板 #include <iostream> #include<cstdio> #include<cstring> #include& ...

  8. oracle 之索引,同义词 ,关键词,视图 ,存储过程,函数,触发器

    --创建索引 关键词 index create[unique] index index_name on table_name(column_name [,column_name…]) [tablesp ...

  9. stm32cube--通用定时器--产生pwm波

    看了通用定时器的资料,发现内容挺多,挺难看懂,现在还是先掌握使用方法,以后再多看几遍吧. ① ② ③生成mdk工程后,在main.c的while(1)前面加上HAL_TIM_PWM_Start(&am ...

  10. 纠错工具之 - Proovread

    BioInf-Wuerzburg/proovread - Github 主要是来解读 proovread 发表的文章,搞清楚它内在的原理. Proovread,这个工具绝对没有你想的那么简单,它引入了 ...