部署MNA高可用

MHA工作原理总结为以下几条:
(1) 从宕机崩溃的 master 保存二进制日志事件(binlog events);
(2) 识别含有最新更新的 slave ;
(3) 应用差异的中继日志(relay log) 到其他 slave ;
(4) 应用从 master 保存的二进制日志事件(binlog events);
(5) 通过Manager控制器提升一个 slave 为新 master ;
(6) 使用其他的 slave 连接新的 master 进行复制。
准备环境:

名称IP
mysql-master10.0.0.194
mysql-slave110.0.0.195
mysql-slave210.0.0.196
mysql-mha10.0.0.193

进行配置:
首先194-196安装一下mysql

yum -y install mariadb mariadb-server

进行mysql-master配置

vim /etc/my.conf
server-id=1   //复制集群中的各节点的id均必须唯一
log-bin=mysql-bin     //开启二进制日志
skip-name-resolve    //关闭名称解析(非必须)
relay-log=mysql-relay   //开启中继日志 
systemctl restart mariadb

在这里插入图片描述
然后mysql-slave1配置

vim /etc/my.cnf
server-id = 2               //复制集群中的各节点的id均必须唯一;
relay-log = relay-log       //开启中继日志
log-bin =mysql-log        //开启二进制日志
read_only = ON              //启用只读属性(非必须)
relay_log_purge = 0         //是否自动清空不再需要中继日志(非必须)
skip_name_resolve           //关闭名称解析(非必须)
log_slave_updates = 1       //使得更新的数据写进二进制日志中
systemctl restart mariadb

在这里插入图片描述
接着mysql-slave2配置

vim /etc/my.cnf
server-id = 3               //复制集群中的各节点的id均必须唯一;
relay-log = relay-log       //开启中继日志
log-bin =mysql-log        //开启二进制日志
read_only = ON              //启用只读属性(非必须)
relay_log_purge = 0         //是否自动清空不再需要中继日志(非必须)
skip_name_resolve           //关闭名称解析(非必须)
log_slave_updates = 1       //使得更新的数据写进二进制日志中
systemctl restart mariadb

在这里插入图片描述
接下来配置mysql一主多从
mysql-master操作授权用户

grant all on *.* to 'xiao'@'10.0.0.%' identified by '123';
flush privileges;
show master status;

在这里插入图片描述
mysql-slave1 slave2都进行如下配置

change master to master_host='10.0.0.194', 
master_user='xiao', 
master_password='123',
master_log_file='mysql-bin.000002',
master_log_pos=245;
start slave;
show slave status\G;

在这里插入图片描述
接下来生成免密交互 四台都要互通
ssh-keygen -t rsa
ssh-copy-id IP (其他三台的IP地址)

继续MHA部署安装
点击下载rpm包
在这里插入图片描述
MHA都安装
master master和slave 1 2 安装node版

yum -y localinstall mha4mysql-manager-0.56-0.el6.noarch.rpm 
yum -y localinstall mha4mysql-node-0.56-0.el6.noarch.rpm

msyql-master操作
进行用户授权

grant all on *.* to 'wtc'@'%' identified by '123';

MNA操作
定义 MHA 管理配置文件

mkdir /etc/mha_master
vim /etc/mha_master/mha.cnf
[server default]            //适用于server1,2,3个server的配置
user=wtc             //mha管理用户
password=123            //mha管理密码
manager_workdir=/etc/mha_master/app1        //mha_master自己的工作路径
manager_log=/etc/mha_master/manager.log     // mha_master自己的日志文件
remote_workdir=/mydata/mha_master/app1      //每个远程主机的工作目录在何处
ssh_user=root               // 基于ssh的密钥认证
repl_user=xiao            //数据库用户名
repl_password=123        //数据库密码
ping_interval=1             //ping间隔时长
[server1]                   //节点1
hostname=10.0.0.194    //节点1主机地址
ssh_port=22                 //节点1的ssh端口
candidate_master=1          //将来可不可以成为master候选节点/主节点
[server2]
hostname=10.0.0.195    //节点2
ssh_port=22
candidate_master=1
[server3]
hostname=10.0.0.196    //节点3
ssh_port=22
candidate_master=1

对四个节点进行检测
检测各节点间 ssh 互信通信配置是否 ok
MHA操作

masterha_check_ssh -conf=/etc/mha_master/mha.cnf

在这里插入图片描述
启动MHA

nohup masterha_manager -conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log &

在这里插入图片描述
查看mater节点状态

masterha_check_status -conf=/etc/mha_master/mha.cnf

在这里插入图片描述
测试
停掉mysql-master并查看slave2状态
在这里插入图片描述
这是模拟之前的主库mysql 10.0.0194
mysql-master操作

systemctl stop mariadb

查看slave2状态以成功切到了salve1为主库

show slave status \G;

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值