MHA实现Mysql一主多从的架构
2020-01-15 00:23
218 查看
MHA简介:
MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。
MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(通过将从库提升为主库),大概0.5-2秒内即可完成。
MHA工作原理:
简单画了一下
环境准备
centos7版本以上
cat /etc/redhat-release
内核3.10以上
uname -r
机器名称 | IP配置 | 服务器角色 | 备注 |
---|---|---|---|
Manager | 10.0.0.41 | Manager | 用于监控管理 |
Master | 10.0.0.42 | 数据库主服务器 | 开启bin-log relay-log 关闭 relay_log_purge |
Slave1 | 10.0.0.43 | 数据库从服务器 | 开启bin-log relay-log 关闭 relay_log_purge |
Slave2 | 10.0.0.44 | 数据库从服务器 | 开启bin-log relay-log 关闭 relay_log_purge |
为了设置免密登录方便、在各个节点里的etc/hosts配置文件内添加一下内容:
10.0.0.41 node1.keer.com node1 10.0.0.42 node1.keer.com node2 10.0.0.43 node1.keer.com node3 10.0.0.44 node1.keer.com node4
如以下图
配置一主多从
一主多从可以借鉴一下我的、也可以自己做一主多从的配置、非常详细
- 配置ssh免密登录
ssh-keygen -t rsa
执行完上一条命令需要自己输入三次回车
ll -a
cd .ssh
ssh-copy-id root@10.0.0.42 ssh-copy-id root@10.0.0.43 ssh-copy-id root@10.0.0.44
- Manager服务器上
- Master服务器上
- Slave1服务器上
- Slave2服务器上
以上操作从配置ssh免密登录开始、每个节点都要执行一遍、除了IP需要换一下。
- 安装MHA包
Manager需要两个包如下图
其他三个节点只需要一个安装包如下图
需要包的可以去我网盘下载:MHA的安装包
MHA和其他三个节点需要的安装包
- 设置MHA管理配置文件MHA节点操作
mkdir /etc/mha_master vim /etc/mha_master/mha.cnf
配置文件如下
[server default] user=mhaadmi #Master设置的管理用户 password=123456 #Master设置的管理用户的密码 manager_workdir=/etc/mha_master/app1 manager_log=/etc/mha_master/manager.log remote_workdir=/mydata/mha_master/app1 ssh_user=root #ssh的免密认证 repl_user=root #数据库授权的用户 repl_password=123456 #数据库授权的的密码 ping_interval=1 [server1] hostname=10.0.0.42 #Master的ip ssh_port=22 candidate_master=1 [server2] hostname=10.0.0.43 #Slave1的ip ssh_port=22 candidate_master=1 [server3] hostname=10.0.0.44 #Slave2的ip ssh_port=22 candidate_master=1
- 检测各节点间 ssh 互信通信配置是否 ok在MHA上操作
masterha_check_ssh -conf=/etc/mha_master/mha.cnf
- 检查管理的MySQL复制集群的连接配置参数是否OK在Master节点上执行
grant all on *.* to 'mhaadmi'@'10.0.%.%' identified by '123456'; flush privileges;
masterha_check_repl -conf=/etc/mha_master/mha.cnf
执行完如下图最后一行显示MySQL Replication Health is OK.即可
- 启动MHA
在MHA节点上执行
nohup masterha_manager -conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log &
执行完如下图
- 启动之后看一下状态
masterha_check_status -conf=/etc/mha_master/mha.cnf
执行完如下图
- 测试MHA故障转移
在Master节点关闭Mariadb服务、模拟Master节点关闭
systemctl stop mariadb
在Manager查看节点状态
masterha_check_status -conf=/etc/mha_master/mha.cnf
执行完如下图
- 查看Slave2主从同步
现在Slave2显示主的IP是Slave1的IP然后显示成功
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- 基于MHA的MySQL高可用架构的实现
- mysql实现高可用架构之MHA
- Mysql常用主从复制架构以及MHA高可用的主从复制的实现
- MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken
- mysql+mha+keepalived实现MHA架构
- 实现MySQL高可用架构之MHA
- Mysql实现高可用架构之MHA
- [置顶] 构建MHA实现MySQL高可用之集群架构配置详解
- MySQL高可用架构之MHA
- MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_2(MySQL)
- MySQL实现递归调用,查询组织架构树
- MySQL实现两主多从架构
- MySQL 5.6通过MMM实现读写分离的高可用架构
- MySQL(三):MHA实现MySQL主从架构中主服务器的高可用,zabbix完成manager重启
- Memcached主从复制+Keepalived实现Memcached高可用架构集群实施--缓存Mysql查询结果
- MySQL高可用架构之MHA
- 探索MySQL高可用架构之MHA(6)
- 分布式架构高可用架构篇_08_MyCat在MySQL主从复制基础上实现读写分离
- 探索MySQL高可用架构之MHA(7)
- 用mysql+redis实现微博feed架构上需要注意哪些问题