Centos7 Mysql5.6.40 高可用架构--MHA

  • 往期历史
    • mysql高可用--MHA架构可以实现什么效果?
    • 架构前提:
    • MHA 高可用方案软件构成
    • MHA环境搭建

往期历史

  1. Centos7 Mysql5.6.40 主从结构 GTID 复制

mysql高可用–MHA架构可以实现什么效果?

  1. 监控
  2. 选主库
  3. 数据补偿
  4. FAILOVER(故障转移)
  5. 应用透明(vip)
  6. 故障提醒

架构前提:

  1. 三个物理节点
  2. 1主2从结构
    master: db01 slave:db02 db03
    淘宝做过二次开发, TMHA架构,只需要两个节点

MHA 高可用方案软件构成

  1. Manager (管理)软件:选择一个从节点安装(如果物理机充足可以单独安装在一台物理机上)
  1. 监控问题 ? 负责监控各个主机 mysql实例
  2. 处理问题,需要人为操作
  3. 数据补偿-使用GTID
  1. Node 软件:所有节点安装
  2. 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信息

  1. Node 工具包(这些工具通常由MHA Manager的脚本触发,无需人无操作)主要包括以下几个工具
  1. save_binary_logs 保存和复制master 的二进制日志
  2. apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的节点
  3. slave filter_mysqlbinlog 去除不必要的ROLLBACK事件(MHA已经不在使用这个工具)
  4. gurge_relay_logs 清除中继日志(不会阻塞sql线程)

MHA环境搭建

  1. 准备环境(1主2从GTID)
  2. 设置从库relay的自动删除功能 ,从库设置只读
  1. 关闭自动删除 set global relay_log_purge = 0; 临时生效 (建议3个节点都做)
  2. set global read_only=1; 临时生效 设置只读(slave db02 slave db03)
  1. 永久设置有效需要加入配置文件

vim /etc/my.cnf
relay_log_purge=0 #建议3个都设置
set global read_only=1; # 只在两个从库设置

  1. 配置关键程序软连接(MHA作者使用yum安装MySQL导致源码中写死了路径,所有必须配置软连接)所有节点必须要设置
    ln -s /application/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
    ln -s /application/mysql/bin/mysql /usr/bin/mysql

  2. 配置各节点互信(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 (密钥对拷贝)

  1. 各节点检验无密码连接(数据补偿需要)

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

  1. 软件包上传服务器
  1. 链接:https://pan.baidu.com/s/1QpmbKBGdZiB7VgNyX5qNzw (百度网盘)
    提取码:4djx
  2. 创建软件存放目录
    mkdir -p /server/tools
  1. 安装node 软件依赖包 (perl 环境安装)

yum install perl-DBD-MySQL -y

  1. 所有节点安装node软件

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

  1. 在db01主库中创建mha需要的用户(主从环境必须可用,自动复制用户到从节点),mha用户监测所有节点状态
mysql> grant all privileges on *.* to mha@'10.0.0.%' identified by 'mha';
  1. 查看从节点是否同步mha用户(db02,db03节点)
  2. 如果Manager 软件不安装在一个单独的服务器节点,建议安装在最后一个从节点(db03节点)

不安装到主节点(db01)原因:预防主节点宕机导致整个mha失效,无法切换(没有单独服务器节点安装Manager软件的情况)

  1. 安装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
  2. 安装Manager:
    rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm
  1. 配置文件准备(db03)
  1. 创建配置文件目录
    mkdir -p /etc/mha
  2. 创建日志目录
    mkdir -p /var/log/mha/aap1
  3. 编写生成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
  1. 状态检测(MHA要启动需要保证互信是通的,主从是通的,检测不通过,直接去解决问题)
  1. 互信检测:
    masterha_check_ssh --conf=/etc/mha/app1.cnf
  1. 主从状态检测
    masterha_check_repl --conf=/etc/mha/app1.cnf
  1. 开启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 &

  2. 查看MHA状态:
    masterha_check_status --conf=/etc/mha/app1.cnf

  3. 模拟故障:

  1. 宕掉主库,查看db03从库主从是否切换
    /etc/init.d/mysqld stop

Centos7 Mysql5.6.40 高可用架构--MHA相关推荐

  1. 搭建MySQL高可用架构MHA

    搭建MySQL高可用架构MHA v1.0 MHA简介 MHA的主要目的是自动化master故障转移和slave自动提升为master,在较短时间(一般为10-30秒)的停机时间,可以避免复制和一致性问 ...

  2. 【DB宝42】MySQL高可用架构MHA+ProxySQL实现读写分离和负载均衡

    文章目录 一.MHA+ProxySQL架构 二.快速搭建MHA环境 2.1 下载MHA镜像 2.2 编辑yml文件,创建MHA相关容器 2.3 安装docker-compose软件(若已安装,可忽略) ...

  3. MySQL高可用架构MHA

    简介 MHA目前在MySQL高可用方面是一个相对成熟的解决方案 MHA是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件 MHA由两部分组成: MHA Manager(管理节点) ...

  4. 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 ...

  5. Mysql的高可用架构搭建(MHA)

    文章目录 Mysql高可用架构(MHA)简介 MySQL高可用系统 MHA技术介绍 MHA提供了如下功能 MHA工作原理 MHA的优点 MHA组件介绍 Manager工具包主要包括以下工具 Node工 ...

  6. 基于CentOS7,MySQL5.7的高可用MHA架构搭建实战

    基于CentOS7,MySQL5.7的高可用MHA架构搭建实战 MHA 架构搭建 一 .MHA架构 MHA(Master High Availability)是一套比较成熟的 MySQL 高可用方案, ...

  7. MHA高可用架构部署以及配置(详细)

    目录 一.MHA概述 1.简介 2.MHA特点 3.何为高可用 4.故障切换过程 二.MHA高可用架构部署 1.架构图 2. 实验环境:需要四台Centos7服务器 3.实验部署 3.1.master ...

  8. MySQL MHA 高可用架构

    2019独角兽企业重金招聘Python工程师标准>>> MySQL MHA   项目的地址:https://code.google.com/p/mysql-master-ha/,这个 ...

  9. MHA高可用架构搭建

    MHA高可用架构搭建 1.环境软件版本 2.环境架构介绍 3.MySQL主从搭建 3.1 MySQL安装(3台) 3.2 关闭防火墙 3.3 MySQL主从配置 Master节点 Slave1节点 S ...

最新文章

  1. python做测试书籍推荐_学习pytest应该观看的书籍?
  2. 最详细的docker安装rocketMQ教程来了
  3. mitmproxy抓包 | Python疑难测试场景mock
  4. 5.2刚买了佳能的ixus100is数码相机,可以录像不过是mov格式的,需要转换为dvd的软件...
  5. windows CMD 下 长ping 加时间戳,亲测有效
  6. anylogic和java,基于Anylogic的Java代码入门教程
  7. 利用JavaScript实现在网页上图片上一张下一张的操作
  8. 计算机专业周记16篇,计算机专业实习周记10篇
  9. 电脑如何启用屏幕键盘(OSK)方法
  10. 用无线热点入门树莓派4详解
  11. 市场上的智能语音助理,主要的工作原理是什么?
  12. autocad2007二维图画法_CAD中如何绘制二维图形
  13. 运营管理模型对计算机软件,生产与运作管理
  14. 职业书掉落及人物对照
  15. 微信支付一直抱签名错误,但是校验通过。
  16. Linux 使用gcore、gdb、pstack、strace命令查死锁问题
  17. Mybatis源码研究序
  18. 完全用Linux工作,作者王垠
  19. 基于java,swing图书管理系统源码下载(含数据库脚本) 附下载
  20. 2022年云原生趋势

热门文章

  1. 如何用O(n)实现四等分数组
  2. 种草!超好用的PDF转换器上线啦~
  3. win10服务器cpu占用过高,Win10 CPU占用率100%怎么办 Win10 CPU占用率过高解决方法
  4. seaweedfs调研
  5. 牛客网-直通BAT面试算法精品课购买优惠码
  6. 图像识别的预处理技术
  7. 02 命题逻辑的基本概念
  8. agilent3070 中 analog测试程序的写法
  9. vue中引用tinymce图标不显示解决方法
  10. 计算机系统的还原及备份,怎么给电脑系统备份以及还原