MySQL MHA高可用架构

MySQL Alan 4年前 (2016-07-18) 5389次浏览 0个评论 扫描二维码

MySQL MHA高可用架构主要用于:

监控主数据库服务器是否可用
当主DB不可用时,从多个从服务器中选举出新的主数据库服务器
提供了主从切换和故障转移功能

MySQL MHA高可用架构

配置步骤

首先参考MySQL主从复制的中基于GTID复制的配置方法配置三台服务器

1.建立主从复制群,MHA可同时支持基于日志点和基于GTID的主从复制,推荐采用基于GTID的主从复制(MMM仅支持基于日志点的主从复制)

主:192.168.0.131
从1:192.168.0.7
从2:192.168.0.9(监控服务器)

2.配置集群内所有主机的SSH免认证登陆

ssh-keygen #生成密钥
ssh-copy-id -i /root/.ssh/id_rsa '-p 22 root@192.168.0.131' #配置本机免登录
ssh-copy-id -i /root/.ssh/id_rsa '-p 22 root@192.168.0.7' #配置从服务器免登录
ssh-copy-id -i /root/.ssh/id_rsa '-p 22 root@192.168.0.9' #配置从服务器免登录

在每台机器上都进行相同的操作

安装MHA-node软件包和MHA-manager软件包

首先安装Perl软件包

yum -y install perl-DBD-MySQL ncftp perl-DBI.x86

各服务上器安装MHA Node

rpm -ivh mha4mysql-node-0.57-0.el7.noarch.rpm

链接: http://pan.baidu.com/s/1i4Bwlhz 密码: ev2c (安装包地址)

监控服务器上(从2)安装以下软件包:

yum -y install perl-Config-Tiny.noarch perl-Time-HiRes.x86_64 perl-Parallel-ForkManager perl-Log-Dispatch-Perl.noarch perl-DBD-MySQL ncftp

然后在监控服务器上安装 MHA Manager

rpm -ivh mha4mysql-manager-0.57-0.el7.noarch.rpm

链接: http://pan.baidu.com/s/1pLpfBxL 密码: m2wk (安装包地址)
3.配置MHA管理节点

在监控服务器上创建文件夹

mkdir -p /etc/mha #mha配置文件夹
mkdir -p /home/mysql_mha #工作目录(所有主从服务器上均创建)
主服务器上创建用户
grant all privileges on *.* to mha@’192.168.0.%’ identified by ‘123456’;
监控服务器上MHA配置文件(/etc/mha/mysql_mha.cnf)

[server default]
user=mha
password=123456
manager_workdir=/home/mysql_mha
manager_log=/home/mysql_mha.log
remote_workdir=/home/mysql_mha
ssh_user=root
repl_user=repl
repl_password=123456
ping_interval=1
master_binlog_dir=/var/lib/mysql #可在主服务器上通过show variables like '%log%'查询
master_ip_failover_script=/usr/bin/master_ip_failover #可选
secondary_check_script=/usr/bin/masterha_secondary_check -s 192.168.0.131 -s 192
.168.0.7 -s 192.168.0.9
[server1]
hostname=192.168.0.131
candidate_master=1
[server2]
hostname=192.168.0.7
candidate_master=1
[server3]
hostname=192.168.0.9
no_master=1

master_ip_failover脚本:

链接: http://pan.baidu.com/s/1nu64t3z 密码: 9xic
下载的脚本仅需修改上面的$vip变量

4.使用masterha_check_ssh和masterha_check_repl对配置进行检验

ssh免登录检测
masterha_check_ssh –conf=/etc/mha/mysql_mha.cnf

检测完比显示All SSH connection tests passed successfully.
复制环境检测
masterha_check_repl –conf=/etc/mha/mysql_mha.cnf

检测完成返回MySQL Replication Health is NOT OK!
5.启动并测试MHA服务(监控服务器)

nohup masterha_manager --conf=/etc/mha/mysql_mha.cnf &

通ps -ef可发现MHA已在后台运行

接下来在主服务器上配置虚拟IP
ifconfig eth0:1 192.128.0.100/24

测试:

关闭主服务器MySQL服务进行测试,进入从1查看IP地址有没有虚拟IP,再去从2中show slave status \G查看有没有正常切换

喜欢 (1)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址