MySQL高可用之MHA

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

  MHA,MySQL的高可用架构,在基于主从架构的模式下,当主服务器挂掉之后,由MHA中manager来决定从哪台slave从服务器当中选择一台作为master主服务器,通常是比较从服务器中的数据,哪个最全,最新,更新时间的长短来判断,当决定使用哪台从服务器作为新的主服务器后,MHA会从其他节点处获取额外信息,避免数据不一致的情况发生,使数据一致。

  MHA有两种角色:

    1.MHA manager

       用于统筹管理一个主从架构集群的master转换,数据复制权限,以及数据库操作权限等设置,通常作为单台服务器进行配置。每一个master/slave集群都作为一个application。

    2.MHA node

       MySQL集群当中的节点,所有在该集群中的服务器都是一个节点,如manager,master,slave1,slave2四台服务器,则有四个node节点。它通过监控具备解 析和清理 logs 功能的脚本来加快故障转移。

   MHA架构集群:

    manager 172.16.25.104

    master     172.16.25.101  server_id=11

    slave1      172.16.25.102  server_id=22

    slave2      172.16.25.103  server_id=33

   

    ①首先配置好一主两从的数据库架构,这一块就不详细描述了,需要注意的是,因为MHA高可用架构的关系,任何一台MySQL服务器都有可能成为主服务器,所以不能像普通主从架构一般,给主服务器开启binlog,给从服务器开启relay_log,需要在主从服务器上都开启binlog与relay_log。

    如该/etc/my.cnf配置

    QQ截图20180112142541.jpg

    

  ②MHA高可用的实现首先需要构建主从集群,其次,需要将各个节点之间的ssh通信无障碍。

  设置密钥通信

  如master172.16.25.101需要向其余三个节点传送密钥,使之能够无密码访问

  #ssh-keygen -t rsa -P ""

  #ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.25.102

  #ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.25.103

  #ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.25.104

  其余三个节点如是。

  

  ③安装MHA

  MHA manager

  #yum install -y mha4mysql-manager-0.56-0.el6.noarch.rpm

  该manager安装需要依赖于许多epel源中的插件,联网安装

  

  MHA node

  #yum install -y mha4mysql-node-0.56-0.el6.noarch.rpm

  四个节点都需要安装


  ④配置manager,使manager能够管理主从集群,手动设置一个配置文件

  在/etc/masterha/app1.cnf(自定义)

  QQ截图20180112145312.jpg

  server default针对于所有MySQL服务器的设置。

  user,password用于对数据库进行管理的账号密码,这个是需要在MySQL集群中,即master,slave1,slave2中授权。

  如

  QQ截图20180112145504.jpg

  ssh_user则是通信时使用的用户,为root。

  repl_user,repl_password用于主从数据库之间复制转移的账户密码,当主服务器down后,从服务器起来,需要在从服务器中进行的change master授权。

  manager_workdir,manager_log则是用于设置manager的工作目录以及日志存放路径。

  master_binlog_dir用于告诉managermaster的binlog日志放置路径。

  ping_interval用于设置访问的间隔,使用ping方式访问。

  server1,server2,server3则是三台MySQL服务器,指定其hostname,可用IP地址代替,若要使用主机名,则需要将主机名写入/etc/hosts中。

  candidate_master=1,用于设置该服务器是否有资格成为主服务器,若为0则无资格。

  

  MHA manager的安装,会提供诸多工具程序,其常见的如下所示。 

  Manager 节点:

   - masterha_check_ssh:MHA 依赖的 SSH 环境检测工具; 

   - masterha_check_repl:MySQL 复制环境检测工具; 

   - masterha_manager:MHA 服务主程序;

   - masterha_check_status:MHA 运行状态探测工具; 

   - masterha_master_monitor:MySQL master 节点可用性监测工具; 

   - masterha_master_switch:master 节点切换工具; 

   - masterha_conf_host:添加或删除配置的节点;

   - masterha_stop:关闭 MHA 服务的工具; 

  Node 节点: 

   - save_binary_logs:保存和复制 master 的二进制日志;

   - apply_diff_relay_logs:识别差异的中继日志事件并应用于其它 slave;

   - filter_mysqlbinlog:去除不必要的 ROLLBACK 事件(MHA 已不再使用这个工具); 

   - purge_relay_logs:清除中继日志(不会阻塞 SQL 线程);

 

  使用masterha_check_ssh测试通信环境是否正常

   QQ截图20180112151851.jpg

   QQ截图20180112151903.jpg

   通信环境正常

  

   使用masterha_check_repl测试数据库之间复制是否正常

   QQ截图20180112152141.jpg

   QQ截图20180112152153.jpg

   复制环境正常


  开启manager,放入后台,并将输出结果放置在manager.log中

  QQ截图20180112152305.jpg

  

  将master 172.16.25.101mysqld,mysqld_safe服务停掉,查看主服务器是否变更

  QQ截图20180112152525.jpg

  172.16.25.101 is down

  经manager比较,172.16.25.102的数据最为接近,选定172.16.25.102即slave1作为新的master,并将数据与172.16.25.103同步


  若172.16.25.101服务重新启动,则需要将其与现任主服务器中的数据进行同步,授权后即可加入到该MySQL集群当中。

  


本文转自 wujunqi1996 51CTO博客,原文链接:http://blog.51cto.com/12480612/2060413


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 关系型数据库 MySQL
Mysql高可用|索引|事务 | 调优
Mysql高可用|索引|事务 | 调优
|
3月前
|
SQL 容灾 关系型数据库
rds容灾与高可用
rds容灾与高可用
28 4
|
3月前
|
关系型数据库 MySQL
电子好书发您分享《MySQL MGR 8.0高可用实战》
电子好书发您分享《MySQL MGR 8.0高可用实战》 电子好书发您分享《MySQL MGR 8.0高可用实战》
90 1
|
4月前
|
监控 关系型数据库 MySQL
MySQL高可用MHA
MySQL高可用管理工具(MHA,Master High Availability)是一个用于自动管理MySQL主从复制的工具,它可以提供高可用性和自动故障转移。MHA由原版的MHA工具和MHA Manager组成,它们协同工作以实现自动主从切换和监控。
136 0
|
6月前
|
关系型数据库 MySQL Nacos
生产环境下的终极指南:在生产环境部署 Nacos 集群和高可用 MySQL 使用 Docker
生产环境下的终极指南:在生产环境部署 Nacos 集群和高可用 MySQL 使用 Docker
309 0
|
2月前
|
监控 容灾 关系型数据库
rds容灾与高可用
rds容灾与高可用
50 6
|
3月前
|
SQL 关系型数据库 MySQL
Mysql高可用,索引,事务与调优:提高数据库性能的关键技术
在当今互联网时代,高可用性、稳定性和性能是数据库的三大关键要素。本文将深入探讨Mysql高可用、索引、事务和调优等方面的技术,为读者提供实用的解决方案和经验。
24 0
|
3月前
|
监控 关系型数据库 MySQL
MySQL高可用与性能优化综述
MySQL作为一种常用的关系型数据库管理系统,高可用性、索引优化、事务处理和性能调优一直是开发人员和运维人员关注的重点。本文将从MySQL高可用性解决方案、索引设计与优化、事务处理最佳实践以及性能调优策略等方面进行探讨,为读者提供全面的MySQL技术知识概览。
|
3月前
|
SQL 缓存 关系型数据库
MySQL高可用与性能优化——从索引到事务
MySQL是一款常用的关系型数据库,但在实际应用中,如何保证其高可用性与性能优化依然是一个值得探讨的话题。本文将从索引的创建和优化、事务的处理以及常见的性能瓶颈入手,为读者提供MySQL高可用与性能优化的实践经验。
|
3月前
|
缓存 固态存储 关系型数据库
从索引到事务,MySQL高可用调优全攻略
MySQL是目前最流行的关系型数据库之一,但是在高并发情况下,它的性能和可靠性会受到很大的挑战。本文将介绍MySQL高可用方案中的索引优化、事务管理以及调优技巧,帮助读者提升MySQL应用的性能和可靠性。
50 0