欢迎来到IDC91站长网!
解决服务器各种技术问题,加微信uecomzsr

MySQL

当前位置: IDC91 > 数据库 > MySQL

MySQL系列之十四 MySQL的高可用实现

时间:2022-05-30 13:49:43|栏目:MySQL|点击:

一、MHA

​对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库。

1、MHA工作原理

  • 从宕机崩溃的master保存二进制日志事件(binlog events)
  • 识别含有最新更新的slave
  • 应用差异的中继日志(relay log)到其他的slave
  • 应用从master保存的二进制日志事件(binlog events)
  • 提升一个slave为新的master

2、MHA软件

MHA软件由两部分组成,Manager工具包和Node工具包;

Manager工具包主要包括以下几个工具:

masterha_check_ssh 检查MHA的SSH配置状况masterha_check_repl 检查MySQL复制状况masterha_manger 启动MHAmasterha_check_status 检测当前MHA运行状态masterha_master_monitor 检测master是否宕机masterha_master_switch 故障转移(自动或手动)masterha_conf_host 添加或删除配置的server信息

Node工具包:这些工具通常由MHA Manager的脚本触发,无需人为操作

save_binary_logs 保存和复制master的二进制日志apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的slavefilter_mysqlbinlog 去除不必要的ROLLBACK事件(MHA已不再使用此工具)purge_relay_logs 清除中继日志(不会阻塞SQL线程)

提示:为了尽可能的减少主库硬件损坏宕机造成的数据丢失,因此在配置MHA的同时建议配置成MySQL 5.5的半同步复制。

自定义扩展:

secondary_check_script:通过多条网络路由检测master的可用性master_ip_ailover_script:更新Application使用的masteripshutdown_script:强制关闭master节点report_script:发送报告init_conf_load_script:加载初始配置参数master_ip_online_change_script:更新master节点ip地址

下载地址:https://code.google.com/archive/p/mysql-master-ha/downloads

3、MHA的实现

环境:基于秘钥认证,参考:https://www.cnblogs.com/L-dongf/p/9058265.html,时间必须同步,执行:ntpdate cn.pool.ntp.org

1)manager节点

[root@manager ~]# yum install mha4mysql-manager-0.56-0.el6.noarch.rpm mha4mysql-node-0.56-0.el6.noarch.rpm -y  #安装mha软件
[root@manager ~]# scp mha4mysql-node-0.56-0.el6.noarch.rpm 192.168.0.7:
[root@manager ~]# scp mha4mysql-node-0.56-0.el6.noarch.rpm 192.168.0.8:
[root@manager ~]# scp mha4mysql-node-0.56-0.el6.noarch.rpm 192.168.0.9:
[root@manager ~]# mkdir /etc/mha/
[root@manager ~]# vim /etc/mha/cluster1.cnf
[server default]
user=mhauser
password=mhapass
manager_workdir=/data/mastermha/cluster1/
manager_log=/data/mastermha/cluster1/manager.log
remote_workdir=/data/mastermha/cluster1/
ssh_user=root
repl_user=repluser
repl_password=replpass
ping_interval=1  #每秒检测一次
[server1]
hostname=192.168.0.7
candidate_master=1  #可以成为主节点
[server2]
hostname=192.168.0.8
candidate_master=1  #可以成为主节点
[server3]
hostname=192.168.0.9
[root@manager ~]# masterha_check_ssh --conf=/etc/mha/cluster1.cnf  #检查ssh秘钥环境
	All SSH connection tests passed successfully.
[root@manager ~]# masterha_check_repl --conf=/etc/mha/cluster1.cnf  #检查MySQL状态
	MySQL Replication Health is OK.
[root@manager ~]# yum install screen -y
[root@manager ~]# screen -S mha  #mha是工作在前台的进程,不能用终端实时检测
[root@manager ~]# masterha_manager --conf=/etc/mha/cluster1.cnf  #开始监测

上一篇:MySQL系列之七 MySQL存储引擎

栏    目:MySQL

下一篇:MySQL系列之十五 MySQL常用配置和性能压力测试

本文标题:MySQL系列之十四 MySQL的高可用实现

本文地址:https://idc91.com/shujuku/3514.html

广告投放 | 联系我们 | 免责申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

Copyright © 2023 IDC91.COM 版权所有晋ICP备17006296号