中间件MHA

MHA是一款开源的MySQL高可用程序,为MySQL主从复制架构提供了节点故障转移功能,当

master发生故障时MHA会自动提升拥有最新数据的slave节点成为新的节点,还提供了master节

点的在线切换功能,即按需切换master/slave节点

Manager会时刻监视主节点,并把主节点的二进制日志保存在本地一份,一旦主节点宕机了,它会找一台拥有最新数据的slave节点,

并通过本地的二进制日志副本,将此slave节点还原到宕机前的一刻,如何找到拥有最新数据的slave节点是通过部署在每台MySQL上

的MHA node实现的(具体实现过程是通过MHA node自带的4个脚本)

MHA是建立在主从架构之上的,因此主从架构得事先配置好,当主节点宕机,任何一个从节点都有可能提升为主节点,因此每个从节点

都得开启二进制日志,而以前的主节点从新上线时,会成为新的从节点,所以在主节点之上也得配置中继日志

下载地址:

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

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

一共使用4台虚拟机做测试,一台manager,一台主(192.168.238.224 ),两台从(192.168.238.225-226),主从架构配置上

篇博文有介绍这里就不说了,建议在每台mariadb的配置文件中设置skip_name_resolve=ON (启动mysqld来禁用DNS主机名查

找。然而,在这种情况下,你只可以使用MySQL中的授权表中的IP号)

不过在两台从节点的配置文件中必须添加relay_log_purge=0(将中继日志重放完成自动删除中继日志的功能关闭),这是因为

manager要根据中继日志判断从节点的复制进度,从而在主节点宕机时提升拥有最新数据的从节点为主节点

1.在主节点授权一个用户,使manager能使用该用户在各主机上进行必要的管理操作:

grant all on *.* to ‘mha‘@‘192.168.%.%‘ identified by ‘mhapass‘;

flush privileges;

2.在MHA的架构中每个节点都必须要能同过ssh协议的密钥方式通信(即基于ssh协议通信无需手动输入密码)

  (1)为了方便在某个主机上生成一对ssh密钥,将该对密钥通过scp命令放置在各节点的相应目录下

     ssh-keygen -t rsa -P ‘‘ (-t 指使用rsa加密方式生成密钥对,-P ‘’ 指不对生成的私钥文件加密)

     如果此命令是root用户运行的,则私钥默认保存在/root/.ssh/id_rsa文件中,公钥保存在/root/.ssh/id_rsa.pub文件中

  (2)所有节点都是用相同的公钥和私钥,将公钥都追加到/root/.ssh/authorized_keys文件中

     cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

   (3) 将id_rsa文件和authorized_keys文件都复制到其他节点的对应目录下(注意其他主机可能没有.ssh目录)

     scp -p .ssh/authorized_keys .ssh/id_rsa 192.168.238.225:/root/.ssh/

     scp -p .ssh/authorized_keys .ssh/id_rsa 192.168.238.226:/root/.ssh/

   为了安全建议将authorized_keys文件权限改为600权限,使用scp命令复制时使用-p选项来保留文件权限

接下来再各节点安装好从上面地址下载下来的rpm包,mananger只安装在一台单独的服务器上,为了解决rpm包的依赖关系,要配置好epel源

  未完待续

时间: 2024-11-07 01:59:39

中间件MHA的相关文章

030:Cetus中间件和MHA读写分离

一.主机环境 虚拟机配置 CPU 内存 硬盘 OS版本 MySQL版本 MHA版本 Cetus版本 2-core 4G 500G CentOS 7.5.1804 5.7.18 0.57 v1.0.0-44 主机信息 主机名 IP地址 Server_ID MHA Manager MHA Node Cetus 备注 node05 192.168.222.175 部署 部署 部署 监控/MySQL主库的故障转移 node02 192.168.222.172 172 - 部署 - node03 192.

【mysql】--MHA+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

优酷土豆资深工程师:MySQL高可用之MaxScale与MHA

本文根据DBAplus社群第67期线上分享整理而成 本次分享主要包括以下内容: 1.MySQL高可用方案 2.为什么选择MHA 3.读写分离方案的寻找以及为什么选择Maxscale 一.MySQL  Failover的方案 常见的Failover方案 MMM MMM缺点: Monitor节点是单点,可以结合Keepalived实现高可用目前MySQL Failover 的方案 Keepalived会有脑裂的风险 在读写繁忙的业务中可能丢数据 MHA + ssh -o 测试心跳 + masterM

MHA+ProxySQL实现读写分离高可用

最近在研究ProxySQL,觉得还挺不错的,所以就简单的折腾了一下,ProxySQL目前也是Percona在推荐的一个读写分离的中间件.关于详细的介绍可以参考官方文档.https://github.com/sysown/proxysql/wiki 本文主要介绍的是MHA+ProxySQL读写分离以及高可用,ProxySQL的细节请参考文档,目前已经有人写发非常详细了,文章最后会给出链接.当然和Group Replication,PXC搭配那是更完美的.关于MHA的配置参考我前面的文章,本文就不再

【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

关于Mysql数据库的高可用以及mysql的proxy中间件的选型一直是个很活跃的技术话题.以高可用为例,解决方案有mysql ndb集群,mmm , mha, drbd等多种选择.Mysql 的proxy中间件则有mysql-proxy, atlas , cobar, mycat, tddl等,可谓五花八门. 以上对应的解决方案都有各种的优缺点,生产环境的选型的原则无非几个字:"简单,符合要求且高效!"一句话:适合自己的,才是最好的! 本文将介绍采用在mysql 1主3从的环境下,采

mysql MHA扩展haproxy搭建从库只读负载均衡

[环境介绍] 系统环境:Red Hat Enterprise Linux 7 + 5.7.18 + MHA version 0.57 MHA架构中从库之间的负责均衡可选择mysql_route&keepalived+lvs&haproxy+keepalived&proxy中间件来实现,这里简单使用haproxy来实现 备库:192.168.142.112 192.168.142.113 这里设置192.168.142.113为haproxy配置主机 [搭建步骤:软件部署] 系统软件

现代Java服务端开发核心技术之分布式数据库中间件MyCAT入门

现代Java服务端开发核心技术之分布式数据库中间件MyCAT入门 现代Java服务端开发核心技术 MyCAT系统环境搭建 如下列表展示了搭建MyCAT运行时环境所需要的软件及其版本说明. 软件名称 软件版本 os centos7.5 JDK JDK1.8u191 MySQL MySQL5.7 Mycat Mycat1.6.5 Navicat Navicat12.08 在非集群的环境下,MyCAT仅仅依赖JDK就可以良好的运行在Windows,Linux,macOS等操作系统之上. CentOS7