Centos7 Mysql5.6.40 高可用架构--MHA
Centos7 Mysql5.6.40 高可用架构--MHA
- 往期历史
- mysql高可用--MHA架构可以实现什么效果?
- 架构前提:
- MHA 高可用方案软件构成
- MHA环境搭建
往期历史
- Centos7 Mysql5.6.40 主从结构 GTID 复制
mysql高可用–MHA架构可以实现什么效果?
- 监控
- 选主库
- 数据补偿
- FAILOVER(故障转移)
- 应用透明(vip)
- 故障提醒
架构前提:
- 三个物理节点
- 1主2从结构
master: db01 slave:db02 db03
淘宝做过二次开发, TMHA架构,只需要两个节点
MHA 高可用方案软件构成
- Manager (管理)软件:选择一个从节点安装(如果物理机充足可以单独安装在一台物理机上)
- 监控问题 ? 负责监控各个主机 mysql实例
- 处理问题,需要人为操作
- 数据补偿-使用GTID
- Node 软件:所有节点安装
- Manger 工具包主要包括以下几个工具:
masterha_check_ssh
检查MHA的SSH配置状况
masterha_check_repl
检查MYSQL复制状况
masterha_check_status
检查当前MHA运行状态
masterha_manger
启动关闭MHA
masterha_master_monitor
检测master是否宕机
masterha_master_switch
控制故障转移(自动或者手动)
masterha_conf_host
添加或删除配置的server信息
- Node 工具包(这些工具通常由MHA Manager的脚本触发,无需人无操作)主要包括以下几个工具
save_binary_logs
保存和复制master 的二进制日志apply_diff_relay_logs
识别差异的中继日志事件并将其差异的事件应用于其他的节点slave filter_mysqlbinlog
去除不必要的ROLLBACK事件(MHA已经不在使用这个工具)gurge_relay_logs
清除中继日志(不会阻塞sql线程)
MHA环境搭建
- 准备环境(1主2从GTID)
- 设置从库relay的自动删除功能 ,从库设置只读
- 关闭自动删除
set global relay_log_purge = 0;
临时生效 (建议3个节点都做)set global read_only=1;
临时生效 设置只读(slave db02 slave db03)
- 永久设置有效需要加入配置文件
vim /etc/my.cnf
relay_log_purge=0
#建议3个都设置
set global read_only=1;
# 只在两个从库设置
配置关键程序软连接(MHA作者使用yum安装MySQL导致源码中写死了路径,所有必须配置软连接)所有节点必须要设置
ln -s /application/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
ln -s /application/mysql/bin/mysql /usr/bin/mysql配置各节点互信(ssh)
db01:
rm -rf /root/.ssh
ssh-keygen #生成密钥
mv /root/.ssh/id_rsa.pub authorized_keys
#公钥文件名必须要是authorized_keys
scp -r /root/.ssh 10.0.0.129 (密钥对拷贝)
scp -r /root/.ssh 10.0.0.130 (密钥对拷贝)
- 各节点检验无密码连接(数据补偿需要)
db01:
ssh 10.0.0.128 date
ssh 10.0.0.129 date
ssh 10.0.0.130 date
db02:
ssh 10.0.0.128 date
ssh 10.0.0.129 date
ssh 10.0.0.130 date
db03:
ssh 10.0.0.128 date
ssh 10.0.0.129 date
ssh 10.0.0.130 date
- 软件包上传服务器
- 链接:https://pan.baidu.com/s/1QpmbKBGdZiB7VgNyX5qNzw (百度网盘)
提取码:4djx- 创建软件存放目录
mkdir -p /server/tools
- 安装node 软件依赖包 (perl 环境安装)
yum install perl-DBD-MySQL -y
- 所有节点安装node软件
rpm -ivh mha4mysql-node-0.56-0.el7.noarch.rpm
- 在db01主库中创建mha需要的用户(主从环境必须可用,自动复制用户到从节点),mha用户监测所有节点状态
mysql> grant all privileges on *.* to mha@'10.0.0.%' identified by 'mha';
- 查看从节点是否同步mha用户(db02,db03节点)
- 如果Manager 软件不安装在一个单独的服务器节点,建议安装在最后一个从节点(db03节点)
不安装到主节点(db01)原因:预防主节点宕机导致整个mha失效,无法切换(没有单独服务器节点安装Manager软件的情况)
- 安装Manager软件依赖包
yum install -y perl-Config-Tiny
yum install -y epel-release perl-Log-Dispatch
yum install -y perl-Parallel-ForkManager
yum install -y perl-Time-HiRes
- 安装Manager:
rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm
- 配置文件准备(db03)
- 创建配置文件目录
mkdir -p /etc/mha
- 创建日志目录
mkdir -p /var/log/mha/aap1
- 编写生成mha配置文件:
vim /etc/mha/app1.cnf
[server default]
# 日志文件
manager_log=/var/log/mha/app1/manager
# 工作目录
manager_workdir=/var/log/mha/app1
# 主库二进制日志
master_binlog_dir=/data/mysql/
# mysql用户
user=mha
password=mha
#
ping_interval=2
#CHANGE MASTER 用户
repl_password=123
repl_user=repl
# 互信用户
ssh_user=root[server1]
hostname=10.0.0.128
port=3306[server2]
hostname=10.0.0.129
port=3306[server3]
hostname=10.0.0.130
port=3306
- 状态检测(MHA要启动需要保证互信是通的,主从是通的,检测不通过,直接去解决问题)
- 互信检测:
masterha_check_ssh --conf=/etc/mha/app1.cnf
- 主从状态检测
masterha_check_repl --conf=/etc/mha/app1.cnf
开启MHA
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &
查看MHA状态:
masterha_check_status --conf=/etc/mha/app1.cnf
模拟故障:
- 宕掉主库,查看db03从库主从是否切换
/etc/init.d/mysqld stop
Centos7 Mysql5.6.40 高可用架构--MHA相关推荐
- 搭建MySQL高可用架构MHA
搭建MySQL高可用架构MHA v1.0 MHA简介 MHA的主要目的是自动化master故障转移和slave自动提升为master,在较短时间(一般为10-30秒)的停机时间,可以避免复制和一致性问 ...
- 【DB宝42】MySQL高可用架构MHA+ProxySQL实现读写分离和负载均衡
文章目录 一.MHA+ProxySQL架构 二.快速搭建MHA环境 2.1 下载MHA镜像 2.2 编辑yml文件,创建MHA相关容器 2.3 安装docker-compose软件(若已安装,可忽略) ...
- MySQL高可用架构MHA
简介 MHA目前在MySQL高可用方面是一个相对成熟的解决方案 MHA是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件 MHA由两部分组成: MHA Manager(管理节点) ...
- mysql 高可用架构 mha 之五 Undefined subroutine main::FIXME_xxx called at power_manage
os: ubuntu 16.04 db: mysql 5.7.25 mha: 0.58 做 masterha_check_repl 时,提示错误 # masterha_check_repl --con ...
- Mysql的高可用架构搭建(MHA)
文章目录 Mysql高可用架构(MHA)简介 MySQL高可用系统 MHA技术介绍 MHA提供了如下功能 MHA工作原理 MHA的优点 MHA组件介绍 Manager工具包主要包括以下工具 Node工 ...
- 基于CentOS7,MySQL5.7的高可用MHA架构搭建实战
基于CentOS7,MySQL5.7的高可用MHA架构搭建实战 MHA 架构搭建 一 .MHA架构 MHA(Master High Availability)是一套比较成熟的 MySQL 高可用方案, ...
- MHA高可用架构部署以及配置(详细)
目录 一.MHA概述 1.简介 2.MHA特点 3.何为高可用 4.故障切换过程 二.MHA高可用架构部署 1.架构图 2. 实验环境:需要四台Centos7服务器 3.实验部署 3.1.master ...
- MySQL MHA 高可用架构
2019独角兽企业重金招聘Python工程师标准>>> MySQL MHA 项目的地址:https://code.google.com/p/mysql-master-ha/,这个 ...
- MHA高可用架构搭建
MHA高可用架构搭建 1.环境软件版本 2.环境架构介绍 3.MySQL主从搭建 3.1 MySQL安装(3台) 3.2 关闭防火墙 3.3 MySQL主从配置 Master节点 Slave1节点 S ...
最新文章
- python做测试书籍推荐_学习pytest应该观看的书籍?
- 最详细的docker安装rocketMQ教程来了
- mitmproxy抓包 | Python疑难测试场景mock
- 5.2刚买了佳能的ixus100is数码相机,可以录像不过是mov格式的,需要转换为dvd的软件...
- windows CMD 下 长ping 加时间戳,亲测有效
- anylogic和java,基于Anylogic的Java代码入门教程
- 利用JavaScript实现在网页上图片上一张下一张的操作
- 计算机专业周记16篇,计算机专业实习周记10篇
- 电脑如何启用屏幕键盘(OSK)方法
- 用无线热点入门树莓派4详解
- 市场上的智能语音助理,主要的工作原理是什么?
- autocad2007二维图画法_CAD中如何绘制二维图形
- 运营管理模型对计算机软件,生产与运作管理
- 职业书掉落及人物对照
- 微信支付一直抱签名错误,但是校验通过。
- Linux 使用gcore、gdb、pstack、strace命令查死锁问题
- Mybatis源码研究序
- 完全用Linux工作,作者王垠
- 基于java,swing图书管理系统源码下载(含数据库脚本) 附下载
- 2022年云原生趋势