MHA 在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的master 节点,在此期间,MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。MHA 还提供了 master 节点的在线切换功能,即按需切换 master/slave 节点
工作原理
MHA工作原理总结为以下几条:
(1) 从宕机崩溃的 master 保存二进制日志事件(binlog events);
(2) 识别含有最新更新的 slave ;
(3) 应用差异的中继日志(relay log) 到其他 slave ;
(4) 应用从 master 保存的二进制日志事件(binlog events);
(5) 提升一个 slave 为新 master ;
(6) 使用其他的 slave 连接新的 master 进行复制。
实现过程(实验机器均为centos 7.x )
MHA 对 MYSQL 复制环境有特殊要求,例如各节点都要开启二进制日志及中继日志,各从节点必须显示启用其read-only
属性,并关闭relay_log_purge
功能等,这里对配置做事先说明。(所以至少要四台机器)
机器名称 | IP配置 | 服务角色 | 备注 |
manager |
192.168.1.130 | manager控制器 |
用于监控管理 |
master | 192.168.1.131 | 数据库主服务器 | 开启bin-log relay-log关闭relay_log |
slave1 | 192.168.1.132 | 数据库从服务器 | 开启bin-log relay-log 关闭relay_log |
slave2 | 192.168.1.133 | 数据库从服务器 | 开启bin-log relay-log 关闭relay_log |
一、安装CentOS7
二、更改镜像源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
删除和更新镜像源
yum clean all
yum repolist
三、关闭防火墙、禁用SELiunx
setenforce 0
getenforce disabled
四、修改主机名和hosts解析
hostnamectl set-hostname 主机名
五、时间同步
六、配置MySQL 8 一主两从 (记得主从三台都要配)
上传MySQL8安装包并发送到其他从主机
解压到对应文件夹,方便删除
装服务器 ,删除不用的依赖
yum install mysql-community-client-8.0.18-1.el7.x86_64.rpm mysql-community-common-8.0.18-1.el7.x86_64.rpm mysql-community-libs-8.0.18-1.el7.x86_64.rpm mysql-community-server-8.0.18-1.el7.x86_64.rpm
节点配置
vi /etc/my.cnf
主节点
server_id = 131
skip_name_resolve //关闭名称解析(非必须)
gtid-mode = on //启用gtid类型
enforce-gtid-consistency = true //强制GTID的一致性
log-slave-updates = 1 //slave更新是否记入日志
log-bin = mysql-bin //开启二进制日志
relay-log = relay-log //开启中继日志