Liunx环境下实现MySQL集群架构--MHA架构

Liunx环境下实现MySQL集群架构–MHA架构

环境准备:四台Linux环境服务器(CentOS7),其中三台安装mysql,三台mysql服务器一台作为主库,另外两台作为从库,实现主从复制
*注:建议最好使用CentOS7,本人开始使用的是CentOS8,但是在安装mha4mysql-manager的过程中出现了各种依赖问题

一、四台Linux环境服务器实现ssh互通

  1. 四台机器分别生成公钥和私钥(*注:使用默认值,一直按回车即可
ssh-keygen -t rsa
  1. 将三台装有mysql的服务器上生成的公钥拷贝到另一台作为MHA Manager的服务器(192.168.132.132)上,密码输入服务器密码
 ssh-copy-id 192.168.132.132
  1. 在MHA Manager服务器检查是否有另外三台装有mysql服务器的公钥
 cat /root/.ssh/authorized_keys
  1. 将MHA Manager服务器的公钥复制到authorized_keys文件中(文件中应存有四台服务器的公钥)
cat /root/.ssh/id_rsa_pub >> /root/.ssh/authorized_keys

Liunx环境下实现MySQL集群架构--MHA架构_第1张图片

  1. MHA Manager服务器向其他三台服务器发送公钥信息,实现ssh互通
 scp /root/.ssh/authorized_keys root@192.168.132.128:/root/.ssh/authorized_keys
 scp /root/.ssh/authorized_keys root@192.168.132.129:/root/.ssh/authorized_keys 
 scp /root/.ssh/authorized_keys root@192.168.132.130:/root/.ssh/authorized_keys
  1. 验证是否ssh互通
ssh 192.168.132.128

二、MHA安装

以下示例在连网环境下进行,未连网环境下,需要前往http://rpm.pbone.net/自行下载安装包

  1. 三台装有mysql的服务器作为MHA Manager服务器的节点,需要安装mha4mysql-node,MHA Manager服务器作为一个节点,也需要安装mha4mysql-node(*注:因为mha4mysql-node依赖于perl-DBD-MySQL,所以需要先安装perl-DBD-MySQL)
yum install -y perl-DBD-MySQL

Liunx环境下实现MySQL集群架构--MHA架构_第2张图片

  1. 四台服务器分别安装mha4mysql-node
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
  1. MHA Manager服务器作为manager,需要安装mha4mysql-manager,安装前需要先安装perl-Config-Tiny、perl-Log-Dispatch、perl-Parallel-ForkManager三个依赖

*注:perl-Log-Dispatch和perl-Parallel-ForkManager这两个被依赖包在yum仓库找不到,因此安装epel-release

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

epel-release-latest-7.noarch.rpm安装

 yum install -y perl-Config-Tiny

Liunx环境下实现MySQL集群架构--MHA架构_第3张图片

yum install -y perl-Log-Dispatch

Liunx环境下实现MySQL集群架构--MHA架构_第4张图片

yum install -y perl-Parallel-ForkManager

Liunx环境下实现MySQL集群架构--MHA架构_第5张图片

  1. 安装mha4mysql-manager
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

三、MHA相关文件配置

MHA Manager服务器需要为每个监控的服务器提供一个专用的配置文件

  1. 全局监控配置文件配置
vim /etc/masterha_default.cnf

Liunx环境下实现MySQL集群架构--MHA架构_第6张图片

  1. 监控实例配置文件配置
vi /etc/mha/app1.cnf

Liunx环境下实现MySQL集群架构--MHA架构_第7张图片

四、MHA配置检测

  1. ssh通信检测(MHA Manager服务器执行)
masterha_check_ssh --conf=/etc/mha/app1.cnf

Liunx环境下实现MySQL集群架构--MHA架构_第8张图片

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

Liunx环境下实现MySQL集群架构--MHA架构_第9张图片

五、MHA Manager启动

*注:主、从库相关配置参数需保持一致,如:log_bin、binlog-ignore-db等参数,否则MHA Manager会启动失败

  1. MHA Manager服务器上执行启动命令
    remove_dead_master_conf:该参数代表当发生主从切换后,老的主库的 ip 将会从配置文件中移除。
    ignore_last_failover:如果最近failover 失败,MHA 将不会再次开始failover机制,因为这个问题可能再次发生,如果设置此参数,MHA 将会继续failover 不管上次的failover状态
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 &
  1. 查看监控状态
masterha_check_status --conf=/etc/mha/app1.cnf

监控状态查看

  1. 如果监控状态为not running,则执行下面命令查看启动日志
tail -n20 /var/log/mha/app1/manager.log

六、测试主从库自动切换

  1. 通过查看日志命令监控切换日志变化
  2. 将主库mysql服务关闭,监控日志变化,由日志变化可以看出,主库已经关闭,其中一台从库切换为了主库
    Liunx环境下实现MySQL集群架构--MHA架构_第10张图片

你可能感兴趣的:(mysql,架构,服务器)