架构师学习-mysql-mha高可用架构(九十九)

注意:mha-manager暂时不支持centos8版本,避免踩坑
注意:mha-manager暂时不支持centos8版本,避免踩坑
注意:mha-manager暂时不支持centos8版本,避免踩坑

1、准备4台服务器,3台安装mysql,并且1主2从

2、四台服务器设置免密登录

  1. 在四台服务器都执行以下命令
ssh-keygen -t rsa

架构师学习-mysql-mha高可用架构(九十九)_第1张图片

  1. 在3台安装了mysql服务的机器上都执行以下命令,将公钥拷贝到mha-manager服务器
ssh-copy-id 192.168.220.131

架构师学习-mysql-mha高可用架构(九十九)_第2张图片

  1. 在mha-manager服务器执行以下命令查看公钥
cat /root/.ssh/authorized_keys

架构师学习-mysql-mha高可用架构(九十九)_第3张图片

  1. 将mha-manager机器的公钥也拷贝到之前的文件
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

架构师学习-mysql-mha高可用架构(九十九)_第4张图片

  1. 从mha-manager的机器执行以下命令将公钥拷贝到其他三台机器
scp /root/.ssh/authorized_keys root@192.168.220.128:/root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys root@192.168.220.129:/root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys root@192.168.220.130:/root/.ssh/authorized_keys

架构师学习-mysql-mha高可用架构(九十九)_第5张图片

  1. 在mha-manager机器执行以下命令查看是否与其他三台服务器互通
ssh 192.168.220.128
exit
ssh 192.168.220.129
exit
ssh 192.168.220.130
exit

架构师学习-mysql-mha高可用架构(九十九)_第6张图片

3、安装mha

mha-manager(mha-manager的机器):https://github.com/yoshinorim/mha4mysql-manager/releases/tag/v0.58
mha-node(3台mysql的机器):https://github.com/yoshinorim/mha4mysql-node/releases/tag/v0.58
架构师学习-mysql-mha高可用架构(九十九)_第7张图片

架构师学习-mysql-mha高可用架构(九十九)_第8张图片

  1. 在四台服务器安装mha-node
yum install perl-DBD-MySQL -y

wget https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58-0.el7.centos.noarch.rpm

rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm

架构师学习-mysql-mha高可用架构(九十九)_第9张图片
架构师学习-mysql-mha高可用架构(九十九)_第10张图片

  1. 在mha-manager机器安装mha-manager
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -ivh epel-release-latest-7.noarch.rpm

yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager -y

wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

4、mha配置

  1. 初始化配置目录
mkdir -p /var/log/mha/app1

touch /var/log/mha/app1/manager.log
  1. 配置全局监控配置文件

在三台mysql库下执行以下命令

create user 'mha'@'%' identified with mysql_native_password by '123456';

grant all privileges on *.* to 'mha'@'%' with grant option;
flush privileges;
vim /etc/masterha_default.cnf

[server default]

user=mha
password=123456
port=3306
ssh_user=root
repl_user=root
repl_password=123456
port=3306
ping_interval=1
secondary_check_script=masterha_secondary_check -s 192.168.220.128 -s 192.168.220.129 -s 192.168.220.130

架构师学习-mysql-mha高可用架构(九十九)_第11张图片

  1. 配置监控实例配置文件
mkdir -p /etc/mha

vim /etc/mha/app1.cnf

[server default]

manager_workdir=/var/log/mha/app1
manager_log=/var/log/mha/app1/manager.log

[server1]
hostname=192.168.220.128
candidate_master=1
master_binlog_dir="/usr/local/mysql/data"

[server2]
hostname=192.168.220.129
candidate_master=1
master_binlog_dir="/usr/local/mysql/data"

[server3]
hostname=192.168.220.130
candidate_master=1
master_binlog_dir="/usr/local/mysql/data"

架构师学习-mysql-mha高可用架构(九十九)_第12张图片

  1. 在三台mysql库配置mysqlbinlog软连接
ln -s /usr/local/mysql/bin/mysqlbinlog  /usr/local/bin/mysqlbinlog
  1. 在三台mysql库配置mysql软连接
ln -s /usr/local/mysql/bin/mysql  /usr/local/bin/mysql

5、mha配置检测

  1. ssh通信检测
masterha_check_ssh --conf=/etc/mha/app1.cnf

架构师学习-mysql-mha高可用架构(九十九)_第13张图片

  1. mysql主从复制检测
masterha_check_repl --conf=/etc/mha/app1.cnf

在这里插入图片描述
3) mha-manager启动

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 &

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

tail -f /var/log/mha/app1/manager.log

架构师学习-mysql-mha高可用架构(九十九)_第14张图片

6、测试mha故障转移

  1. 打开日志
tail -200f /var/log/mha/app1/manager.log
  1. 关闭mysql主库服务
service mysql stop

在这里插入图片描述
3) 查看mha日志
架构师学习-mysql-mha高可用架构(九十九)_第15张图片

你可能感兴趣的:(MySQL,架构师,mysql,架构师)