Mariadb高可用MHA (四十二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、概述

[1.1 概念](#1.1 概念)

[1.2 组成](#1.2 组成)

[1.3 特点](#1.3 特点)

[1.4 工作原理](#1.4 工作原理)

二、构建MHA

[2.1 ssh免密登录](#2.1 ssh免密登录)

[2.2 主从复制](#2.2 主从复制)

[2.3 MHA安装](#2.3 MHA安装)

2.3.1所有节点安装perl环境

[2.3..2 node](#2.3..2 node)

[2.3.3 manager (只在mgt上装)](#2.3.3 manager (只在mgt上装))

[2.3.4 测试](#2.3.4 测试)

[2.3.5 故障恢复](#2.3.5 故障恢复)

总结



前言

MHA(Master High Availability)是一种用于MySQL和MariaDB数据库的高可用解决方案。它是由一个主节点(Master)和多个从节点(Slave)组成的集群,当主节点故障时,自动切换到一个可用的从节点上,以确保数据库的连续性和可用性。


提示:以下是本篇文章正文内容,下面案例可供参考

一、概述

1.1 概念

MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。

MHA 的出现就是解决MySQL 单点的问题。

MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。

MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

1.2 组成

MHA manager

管理节点

MHA node

数据节点

每个节点上都需要安装

1.3 特点

自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失

使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性

目前MHA支持一主多从架构,最少三台服务,即一主两从

1.4 工作原理

从宕机崩溃的master 保存二进制日志事件(binlog events);

识别含有最新的更新slave日志

应用差异的中继日志(relay log)到其他的slave

应用从master保存的二进制日志事件

提升一个slave为新的master

使其他的slave连接新的master进行复制

二、构建MHA

案例

192.168.156.3

manager(MHA)

mgt

192.168.156.4

master

master

192.168.156.5

slave

slave1

192.168.156.6

slave

slave2

每一台主机上全部安装mariadb

bash 复制代码
[root@localhost ~]# yum install -y mariadb mariadb-server
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * epel: mirrors.bfsu.edu.cn
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 mariadb.x86_64.1.5.5.68-1.el7 将被 安装
---> 软件包 mariadb-server.x86_64.1.5.5.68-1.el7 将被 安装
--> 正在处理依赖关系 perl-DBD-MySQL,它被软件包 1:mariadb-server-5.5.68-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 perl-DBD-MySQL.x86_64.0.4.023-6.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

====================================================================================================================================================
 Package                                架构                           版本                                      源                            大小
====================================================================================================================================================
正在安装:
 mariadb                                x86_64                         1:5.5.68-1.el7                            base                         8.8 M
 mariadb-server                         x86_64                         1:5.5.68-1.el7                            base                          11 M
为依赖而安装:
 perl-DBD-MySQL                         x86_64                         4.023-6.el7                               base                         140 k

事务概要
====================================================================================================================================================
安装  2 软件包 (+1 依赖软件包)

总下载量:20 M
安装大小:107 M
Downloading packages:
(1/3): perl-DBD-MySQL-4.023-6.el7.x86_64.rpm                                                                                 | 140 kB  00:00:00     
(2/3): mariadb-server-5.5.68-1.el7.x86_64.rpm                                                                                |  11 MB  00:00:03     
(3/3): mariadb-5.5.68-1.el7.x86_64.rpm                                                                                       | 8.8 MB  00:00:16     
----------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                1.2 MB/s |  20 MB  00:00:16     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 1:mariadb-5.5.68-1.el7.x86_64                                                                                                   1/3 
  正在安装    : perl-DBD-MySQL-4.023-6.el7.x86_64                                                                                               2/3 
  正在安装    : 1:mariadb-server-5.5.68-1.el7.x86_64                                                                                            3/3 
  验证中      : 1:mariadb-server-5.5.68-1.el7.x86_64                                                                                            1/3 
  验证中      : perl-DBD-MySQL-4.023-6.el7.x86_64                                                                                               2/3 
  验证中      : 1:mariadb-5.5.68-1.el7.x86_64                                                                                                   3/3 

已安装:
  mariadb.x86_64 1:5.5.68-1.el7                                         mariadb-server.x86_64 1:5.5.68-1.el7                                        

作为依赖被安装:
  perl-DBD-MySQL.x86_64 0:4.023-6.el7                                                                                                               

完毕!

每台主机分别改名为mgt master slave1 slave2

进入配置文件 /etc/hosts ,添加主机

将文件 /etc/hosts 分别拷贝给其它三台机子

bash 复制代码
[root@mgt ~]# scp /etc/hosts 192.168.156.4:/etc/
The authenticity of host '192.168.156.4 (192.168.156.4)' can't be established.
ECDSA key fingerprint is SHA256:UYOTDfnPCXDYRisvqKkyxQEEiuZnt6vtyjxyIwTT10M.
ECDSA key fingerprint is MD5:43:59:03:5c:67:80:66:f1:84:6e:ab:9d:d9:1a:b4:90.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.156.4' (ECDSA) to the list of known hosts.
root@192.168.156.4's password: 
hosts                                                                                                             100%  240    80.2KB/s   00:00    
[root@mgt ~]# scp /etc/hosts 192.168.156.5:/etc/
The authenticity of host '192.168.156.5 (192.168.156.5)' can't be established.
ECDSA key fingerprint is SHA256:UYOTDfnPCXDYRisvqKkyxQEEiuZnt6vtyjxyIwTT10M.
ECDSA key fingerprint is MD5:43:59:03:5c:67:80:66:f1:84:6e:ab:9d:d9:1a:b4:90.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.156.5' (ECDSA) to the list of known hosts.
root@192.168.156.5's password: 
hosts                                                                                                             100%  240    92.0KB/s   00:00    
[root@mgt ~]# scp /etc/hosts 192.168.156.8:/etc/
The authenticity of host '192.168.156.8 (192.168.156.8)' can't be established.
ECDSA key fingerprint is SHA256:UYOTDfnPCXDYRisvqKkyxQEEiuZnt6vtyjxyIwTT10M.
ECDSA key fingerprint is MD5:43:59:03:5c:67:80:66:f1:84:6e:ab:9d:d9:1a:b4:90.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.156.8' (ECDSA) to the list of known hosts.
root@192.168.156.8's password: 
hosts                           

测试(分别在每一台主机上测试)mgt

bash 复制代码
[root@mgt ~]# ping master
PING master (192.168.156.4) 56(84) bytes of data.
64 bytes from master (192.168.156.4): icmp_seq=1 ttl=64 time=0.513 ms
64 bytes from master (192.168.156.4): icmp_seq=2 ttl=64 time=0.825 ms
^C
--- master ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 0.513/0.669/0.825/0.156 ms
[root@mgt ~]# ping slave1
PING slave1 (192.168.156.5) 56(84) bytes of data.
64 bytes from slave1 (192.168.156.5): icmp_seq=1 ttl=64 time=0.659 ms
64 bytes from slave1 (192.168.156.5): icmp_seq=2 ttl=64 time=0.648 ms
^C
--- slave1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.648/0.653/0.659/0.026 ms
[root@mgt ~]# ping slave2
PING slave2 (192.168.156.8) 56(84) bytes of data.
64 bytes from slave2 (192.168.156.8): icmp_seq=1 ttl=64 time=0.532 ms
64 bytes from slave2 (192.168.156.8): icmp_seq=2 ttl=64 time=0.756 ms
^C
--- slave2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.532/0.644/0.756/0.112 ms

master

bash 复制代码
[root@master ~]# ping mgt
PING mgt (192.168.156.10) 56(84) bytes of data.
64 bytes from mgt (192.168.156.10): icmp_seq=1 ttl=64 time=0.339 ms
64 bytes from mgt (192.168.156.10): icmp_seq=2 ttl=64 time=0.676 ms
^C
--- mgt ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.339/0.507/0.676/0.170 ms
[root@master ~]# ping slave1
PING slave1 (192.168.156.5) 56(84) bytes of data.
64 bytes from slave1 (192.168.156.5): icmp_seq=1 ttl=64 time=0.866 ms
64 bytes from slave1 (192.168.156.5): icmp_seq=2 ttl=64 time=0.451 ms
^C
--- slave1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.451/0.658/0.866/0.209 ms
[root@master ~]# ping slave2
PING slave2 (192.168.156.8) 56(84) bytes of data.
64 bytes from slave2 (192.168.156.8): icmp_seq=1 ttl=64 time=1.00 ms
64 bytes from slave2 (192.168.156.8): icmp_seq=2 ttl=64 time=0.489 ms
^C
--- slave2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.489/0.746/1.003/0.257 ms

slave1

bash 复制代码
[root@slave1 ~]# ping mgt
PING mgt (192.168.156.10) 56(84) bytes of data.
64 bytes from mgt (192.168.156.10): icmp_seq=1 ttl=64 time=0.380 ms
64 bytes from mgt (192.168.156.10): icmp_seq=2 ttl=64 time=0.982 ms
^C
--- mgt ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.380/0.681/0.982/0.301 ms
[root@slave1 ~]# ping master
PING master (192.168.156.4) 56(84) bytes of data.
64 bytes from master (192.168.156.4): icmp_seq=1 ttl=64 time=0.517 ms
64 bytes from master (192.168.156.4): icmp_seq=2 ttl=64 time=0.287 ms
^C
--- master ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.287/0.402/0.517/0.115 ms
[root@slave1 ~]# ping slave2
PING slave2 (192.168.156.8) 56(84) bytes of data.
64 bytes from slave2 (192.168.156.8): icmp_seq=1 ttl=64 time=1.48 ms
64 bytes from slave2 (192.168.156.8): icmp_seq=2 ttl=64 time=0.840 ms
^C
--- slave2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.840/1.163/1.487/0.325 ms

slave2

bash 复制代码
[root@slave2 ~]# ping mgt
PING mgt (192.168.156.10) 56(84) bytes of data.
64 bytes from mgt (192.168.156.10): icmp_seq=1 ttl=64 time=0.422 ms
64 bytes from mgt (192.168.156.10): icmp_seq=2 ttl=64 time=0.437 ms
64 bytes from mgt (192.168.156.10): icmp_seq=3 ttl=64 time=0.574 ms
64 bytes from mgt (192.168.156.10): icmp_seq=4 ttl=64 time=0.874 ms
64 bytes from mgt (192.168.156.10): icmp_seq=5 ttl=64 time=0.735 ms
^C
--- mgt ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4013ms
rtt min/avg/max/mdev = 0.422/0.608/0.874/0.175 ms
[root@slave2 ~]# ping master
PING master (192.168.156.4) 56(84) bytes of data.
64 bytes from master (192.168.156.4): icmp_seq=1 ttl=64 time=0.682 ms
64 bytes from master (192.168.156.4): icmp_seq=2 ttl=64 time=0.685 ms
64 bytes from master (192.168.156.4): icmp_seq=3 ttl=64 time=0.789 ms
^C
--- master ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2033ms
rtt min/avg/max/mdev = 0.682/0.718/0.789/0.058 ms
[root@slave2 ~]# ping slave1
PING slave1 (192.168.156.5) 56(84) bytes of data.
64 bytes from slave1 (192.168.156.5): icmp_seq=1 ttl=64 time=0.477 ms
64 bytes from slave1 (192.168.156.5): icmp_seq=2 ttl=64 time=0.779 ms
64 bytes from slave1 (192.168.156.5): icmp_seq=3 ttl=64 time=0.654 ms
64 bytes from slave1 (192.168.156.5): icmp_seq=4 ttl=64 time=0.728 ms
64 bytes from slave1 (192.168.156.5): icmp_seq=5 ttl=64 time=0.756 ms
64 bytes from slave1 (192.168.156.5): icmp_seq=6 ttl=64 time=0.904 ms
^C
--- slave1 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5018ms
rtt min/avg/max/mdev = 0.477/0.716/0.904/0.132 ms

2.1 ssh免密登录

所有节点配置hosts

192.168.156.3 mgt

192.168.156.4 master

192.168.156.5 slave1

192.168.156.6 slave2

192.168.156.3

ssh-keygen

for i in 4 5 6;do ssh-copy-id root@192.168.156.$i;done

192.168.156.4

ssh-keygen

for i in 3 5 6;do ssh-copy-id root@192.168.156.$i;done

192.168.156.5

ssh-keygen

for i in 4 3 6;do ssh-copy-id root@192.168.156.$i;done

192.168.156.6

ssh-keygen

for i in 4 5 3;do ssh-copy-id root@192.168.156.$i;done

测试

for i in 3 4 5;do ssh 192.168.156.$i hostname;done

bash 复制代码
[root@mgt ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:KKd91Xo5xRM8gTnd4xmNU1Ug+k3bCqu/Dafc5GV711Y root@mgt
The key's randomart image is:
+---[RSA 2048]----+
|            .+o=B|
|           .+o++o|
|          .  .*.+|
|       .   o + B |
|    . o S . + * .|
|     =   . . = oE|
|    . . . . * + =|
|       .   + X o*|
|          ..=.+oo|
+----[SHA256]-----+
bash 复制代码
[root@mgt ~]# ssh-copy-id mgt
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'mgt (192.168.156.3)' can't be established.
ECDSA key fingerprint is SHA256:UYOTDfnPCXDYRisvqKkyxQEEiuZnt6vtyjxyIwTT10M.
ECDSA key fingerprint is MD5:43:59:03:5c:67:80:66:f1:84:6e:ab:9d:d9:1a:b4:90.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@mgt's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'mgt'"
and check to make sure that only the key(s) you wanted were added.

验证(分别在每一台机子上验证)

bash 复制代码
[root@mgt ~]# ssh master
The authenticity of host 'master (192.168.156.4)' can't be established.
ECDSA key fingerprint is SHA256:UYOTDfnPCXDYRisvqKkyxQEEiuZnt6vtyjxyIwTT10M.
ECDSA key fingerprint is MD5:43:59:03:5c:67:80:66:f1:84:6e:ab:9d:d9:1a:b4:90.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'master' (ECDSA) to the list of known hosts.
Last login: Wed Aug 16 02:16:32 2023 from 192.168.156.1
[root@master ~]# exit
登出
Connection to master closed.
[root@mgt ~]# ssh slave1
The authenticity of host 'slave1 (192.168.156.5)' can't be established.
ECDSA key fingerprint is SHA256:UYOTDfnPCXDYRisvqKkyxQEEiuZnt6vtyjxyIwTT10M.
ECDSA key fingerprint is MD5:43:59:03:5c:67:80:66:f1:84:6e:ab:9d:d9:1a:b4:90.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'slave1' (ECDSA) to the list of known hosts.
Last login: Wed Aug 16 02:17:00 2023 from 192.168.156.1
[root@slave1 ~]# exit
登出
Connection to slave1 closed.
[root@mgt ~]# ssh slave2
The authenticity of host 'slave2 (192.168.156.6)' can't be established.
ECDSA key fingerprint is SHA256:UYOTDfnPCXDYRisvqKkyxQEEiuZnt6vtyjxyIwTT10M.
ECDSA key fingerprint is MD5:43:59:03:5c:67:80:66:f1:84:6e:ab:9d:d9:1a:b4:90.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'slave2' (ECDSA) to the list of known hosts.
Last login: Wed Aug 16 02:17:30 2023 from 192.168.156.1
[root@slave2 ~]# exit
登出
Connection to slave2 closed.
[root@mgt ~]# ssh mgt
Last login: Wed Aug 16 02:16:02 2023 from 192.168.156.1
[root@mgt ~]# exit
登出
Connection to mgt closed.

2.2 主从复制

master

slave1

slave2

启动服务(三台都启动)

master

查看状态

slave1

slave2

验证

登录master ,在master 上创建库

登录slave1 查看

登录slave2 查看

2.3 MHA安装

2.3.1所有节点安装perl环境

yum install epel-release -y

yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPAN

bash 复制代码
[root@mgt ~]# yum install epel-release -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 epel-release.noarch.0.7-11 将被 安装
--> 解决依赖关系完成

依赖关系解决

=========================================================================================================================================================================
 Package                                      架构                                   版本                                   源                                      大小
=========================================================================================================================================================================
正在安装:
 epel-release                                 noarch                                 7-11                                   extras                                  15 k

事务概要
=========================================================================================================================================================================
安装  1 软件包

总下载量:15 k
安装大小:24 k
Downloading packages:
epel-release-7-11.noarch.rpm                                                                                                                      |  15 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : epel-release-7-11.noarch                                                                                                                             1/1 
  验证中      : epel-release-7-11.noarch                                                                                                                             1/1 

已安装:
  epel-release.noarch 0:7-11                                                                                                                                             

完毕!
[root@mgt ~]# yum install epel-release -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirror-icn.yuki.net.uk
 * extras: mirrors.cqu.edu.cn
 * updates: mirrors.jlu.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 epel-release.noarch.0.7-11 将被 升级
---> 软件包 epel-release.noarch.0.7-14 将被 更新
--> 解决依赖关系完成

依赖关系解决

=========================================================================================================================================================================
 Package                                       架构                                    版本                                  源                                     大小
=========================================================================================================================================================================
正在更新:
 epel-release                                  noarch                                  7-14                                  epel                                   15 k

事务概要
=========================================================================================================================================================================
升级  1 软件包

总下载量:15 k
Downloading packages:
epel/x86_64/prestodelta                                                                                                                           | 1.2 kB  00:00:00     
警告:/var/cache/yum/x86_64/7/epel/packages/epel-release-7-14.noarch.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
epel-release-7-14.noarch.rpm 的公钥尚未安装
epel-release-7-14.noarch.rpm                                                                                                                      |  15 kB  00:00:00     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 检索密钥
导入 GPG key 0x352C64E5:
 用户ID     : "Fedora EPEL (7) <epel@fedoraproject.org>"
 指纹       : 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 软件包     : epel-release-7-11.noarch (@extras)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : epel-release-7-14.noarch                                                                                                                             1/2 
  清理        : epel-release-7-11.noarch                                                                                                                             2/2 
  验证中      : epel-release-7-14.noarch                                                                                                                             1/2 
  验证中      : epel-release-7-11.noarch                                                                                                                             2/2 

更新完毕:
  epel-release.noarch 0:7-14                                                                                                                                             

完毕!
bash 复制代码
[root@mgt ~]# yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPAN
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.bfsu.edu.cn
 * epel: mirrors.bfsu.edu.cn
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.bfsu.edu.cn
软件包 perl-DBD-MySQL-4.023-6.el7.x86_64 已安装并且是最新版本
软件包 4:perl-Time-HiRes-1.9725-3.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 perl-CPAN.noarch.0.1.9800-299.el7_9 将被 安装
--> 正在处理依赖关系 perl(local::lib),它被软件包 perl-CPAN-1.9800-299.el7_9.noarch 需要
--> 正在处理依赖关系 perl(Digest::SHA),它被软件包 perl-CPAN-1.9800-299.el7_9.noarch 需要
---> 软件包 perl-Config-Tiny.noarch.0.2.14-7.el7 将被 安装
---> 软件包 perl-ExtUtils-MakeMaker.noarch.0.6.68-3.el7 将被 安装
--> 正在处理依赖关系 perl(ExtUtils::Packlist),它被软件包 perl-ExtUtils-MakeMaker-6.68-3.el7.noarch 需要
--> 正在处理依赖关系 perl(ExtUtils::Manifest),它被软件包 perl-ExtUtils-MakeMaker-6.68-3.el7.noarch 需要
--> 正在处理依赖关系 perl(ExtUtils::Installed),它被软件包 perl-ExtUtils-MakeMaker-6.68-3.el7.noarch 需要
--> 正在处理依赖关系 perl(ExtUtils::Install),它被软件包 perl-ExtUtils-MakeMaker-6.68-3.el7.noarch 需要
---> 软件包 perl-Log-Dispatch.noarch.0.2.41-1.el7.1 将被 安装
--> 正在处理依赖关系 perl(Params::Validate) >= 0.15,它被软件包 perl-Log-Dispatch-2.41-1.el7.1.noarch 需要
--> 正在处理依赖关系 perl(Sys::Syslog) >= 0.25,它被软件包 perl-Log-Dispatch-2.41-1.el7.1.noarch 需要
--> 正在处理依赖关系 perl(Class::Load),它被软件包 perl-Log-Dispatch-2.41-1.el7.1.noarch 需要
--> 正在处理依赖关系 perl(MIME::Lite),它被软件包 perl-Log-Dispatch-2.41-1.el7.1.noarch 需要
--> 正在处理依赖关系 perl(Mail::Send),它被软件包 perl-Log-Dispatch-2.41-1.el7.1.noarch 需要
--> 正在处理依赖关系 perl(Mail::Sender),它被软件包 perl-Log-Dispatch-2.41-1.el7.1.noarch 需要
--> 正在处理依赖关系 perl(Mail::Sendmail),它被软件包 perl-Log-Dispatch-2.41-1.el7.1.noarch 需要
--> 正在处理依赖关系 perl(Params::Validate),它被软件包 perl-Log-Dispatch-2.41-1.el7.1.noarch 需要
---> 软件包 perl-Parallel-ForkManager.noarch.0.1.18-2.el7 将被 安装
--> 正在检查事务
---> 软件包 perl-Class-Load.noarch.0.0.20-3.el7 将被 安装
--> 正在处理依赖关系 perl(Package::Stash) >= 0.14,它被软件包 perl-Class-Load-0.20-3.el7.noarch 需要
--> 正在处理依赖关系 perl(Module::Runtime) >= 0.012,它被软件包 perl-Class-Load-0.20-3.el7.noarch 需要
--> 正在处理依赖关系 perl(Module::Implementation) >= 0.04,它被软件包 perl-Class-Load-0.20-3.el7.noarch 需要
--> 正在处理依赖关系 perl(Try::Tiny),它被软件包 perl-Class-Load-0.20-3.el7.noarch 需要
--> 正在处理依赖关系 perl(Module::Runtime),它被软件包 perl-Class-Load-0.20-3.el7.noarch 需要
--> 正在处理依赖关系 perl(Data::OptList),它被软件包 perl-Class-Load-0.20-3.el7.noarch 需要
---> 软件包 perl-Digest-SHA.x86_64.1.5.85-4.el7 将被 安装
--> 正在处理依赖关系 perl(Digest::base),它被软件包 1:perl-Digest-SHA-5.85-4.el7.x86_64 需要
---> 软件包 perl-ExtUtils-Install.noarch.0.1.58-299.el7_9 将被 安装
--> 正在处理依赖关系 perl-devel,它被软件包 perl-ExtUtils-Install-1.58-299.el7_9.noarch 需要
---> 软件包 perl-ExtUtils-Manifest.noarch.0.1.61-244.el7 将被 安装
---> 软件包 perl-MIME-Lite.noarch.0.3.030-1.el7 将被 安装
--> 正在处理依赖关系 perl(MIME::Types) >= 1.28,它被软件包 perl-MIME-Lite-3.030-1.el7.noarch 需要
--> 正在处理依赖关系 perl(Email::Date::Format),它被软件包 perl-MIME-Lite-3.030-1.el7.noarch 需要
---> 软件包 perl-Mail-Sender.noarch.0.0.8.23-1.el7 将被 安装
--> 正在处理依赖关系 perl(IO::Socket::SSL),它被软件包 perl-Mail-Sender-0.8.23-1.el7.noarch 需要
--> 正在处理依赖关系 perl(Net::SSLeay),它被软件包 perl-Mail-Sender-0.8.23-1.el7.noarch 需要
---> 软件包 perl-Mail-Sendmail.noarch.0.0.79-21.el7 将被 安装
---> 软件包 perl-MailTools.noarch.0.2.12-2.el7 将被 安装
--> 正在处理依赖关系 perl(Net::SMTP::SSL),它被软件包 perl-MailTools-2.12-2.el7.noarch 需要
--> 正在处理依赖关系 perl(Date::Parse),它被软件包 perl-MailTools-2.12-2.el7.noarch 需要
--> 正在处理依赖关系 perl(Date::Format),它被软件包 perl-MailTools-2.12-2.el7.noarch 需要
---> 软件包 perl-Params-Validate.x86_64.0.1.08-4.el7 将被 安装
---> 软件包 perl-Sys-Syslog.x86_64.0.0.33-3.el7 将被 安装
---> 软件包 perl-local-lib.noarch.0.1.008010-4.el7 将被 安装
--> 正在检查事务
---> 软件包 perl-Data-OptList.noarch.0.0.107-9.el7 将被 安装
--> 正在处理依赖关系 perl(Sub::Install) >= 0.921,它被软件包 perl-Data-OptList-0.107-9.el7.noarch 需要
--> 正在处理依赖关系 perl(Params::Util),它被软件包 perl-Data-OptList-0.107-9.el7.noarch 需要
---> 软件包 perl-Digest.noarch.0.1.17-245.el7 将被 安装
---> 软件包 perl-Email-Date-Format.noarch.0.1.002-15.el7 将被 安装
---> 软件包 perl-IO-Socket-SSL.noarch.0.1.94-7.el7 将被 安装
--> 正在处理依赖关系 perl(IO::Socket::IP) >= 0.20,它被软件包 perl-IO-Socket-SSL-1.94-7.el7.noarch 需要
--> 正在处理依赖关系 perl(Net::LibIDN),它被软件包 perl-IO-Socket-SSL-1.94-7.el7.noarch 需要
--> 正在处理依赖关系 perl(Mozilla::CA),它被软件包 perl-IO-Socket-SSL-1.94-7.el7.noarch 需要
---> 软件包 perl-MIME-Types.noarch.0.1.38-2.el7 将被 安装
---> 软件包 perl-Module-Implementation.noarch.0.0.06-6.el7 将被 安装
---> 软件包 perl-Module-Runtime.noarch.0.0.013-4.el7 将被 安装
---> 软件包 perl-Net-SMTP-SSL.noarch.0.1.01-13.el7 将被 安装
---> 软件包 perl-Net-SSLeay.x86_64.0.1.55-6.el7 将被 安装
---> 软件包 perl-Package-Stash.noarch.0.0.34-2.el7 将被 安装
--> 正在处理依赖关系 perl(Package::Stash::XS) >= 0.26,它被软件包 perl-Package-Stash-0.34-2.el7.noarch 需要
--> 正在处理依赖关系 perl(Package::DeprecationManager),它被软件包 perl-Package-Stash-0.34-2.el7.noarch 需要
---> 软件包 perl-TimeDate.noarch.1.2.30-2.el7 将被 安装
---> 软件包 perl-Try-Tiny.noarch.0.0.12-2.el7 将被 安装
---> 软件包 perl-devel.x86_64.4.5.16.3-299.el7_9 将被 安装
--> 正在处理依赖关系 systemtap-sdt-devel,它被软件包 4:perl-devel-5.16.3-299.el7_9.x86_64 需要
--> 正在处理依赖关系 perl(ExtUtils::ParseXS),它被软件包 4:perl-devel-5.16.3-299.el7_9.x86_64 需要
--> 正在处理依赖关系 libdb-devel,它被软件包 4:perl-devel-5.16.3-299.el7_9.x86_64 需要
--> 正在处理依赖关系 gdbm-devel,它被软件包 4:perl-devel-5.16.3-299.el7_9.x86_64 需要
--> 正在检查事务
---> 软件包 gdbm-devel.x86_64.0.1.10-8.el7 将被 安装
---> 软件包 libdb-devel.x86_64.0.5.3.21-25.el7 将被 安装
---> 软件包 perl-ExtUtils-ParseXS.noarch.1.3.18-3.el7 将被 安装
---> 软件包 perl-IO-Socket-IP.noarch.0.0.21-5.el7 将被 安装
---> 软件包 perl-Mozilla-CA.noarch.0.20130114-5.el7 将被 安装
---> 软件包 perl-Net-LibIDN.x86_64.0.0.12-15.el7 将被 安装
---> 软件包 perl-Package-DeprecationManager.noarch.0.0.13-7.el7 将被 安装
--> 正在处理依赖关系 perl(List::MoreUtils),它被软件包 perl-Package-DeprecationManager-0.13-7.el7.noarch 需要
---> 软件包 perl-Package-Stash-XS.x86_64.0.0.26-3.el7 将被 安装
---> 软件包 perl-Params-Util.x86_64.0.1.07-6.el7 将被 安装
---> 软件包 perl-Sub-Install.noarch.0.0.926-6.el7 将被 安装
---> 软件包 systemtap-sdt-devel.x86_64.0.4.0-13.el7 将被 安装
--> 正在处理依赖关系 pyparsing,它被软件包 systemtap-sdt-devel-4.0-13.el7.x86_64 需要
--> 正在检查事务
---> 软件包 perl-List-MoreUtils.x86_64.0.0.33-9.el7 将被 安装
---> 软件包 pyparsing.noarch.0.1.5.6-9.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=========================================================================================================================================================================
 Package                                                 架构                           版本                                       源                               大小
=========================================================================================================================================================================
正在安装:
 perl-CPAN                                               noarch                         1.9800-299.el7_9                           updates                         293 k
 perl-Config-Tiny                                        noarch                         2.14-7.el7                                 base                             25 k
 perl-ExtUtils-MakeMaker                                 noarch                         6.68-3.el7                                 base                            275 k
 perl-Log-Dispatch                                       noarch                         2.41-1.el7.1                               epel                             82 k
 perl-Parallel-ForkManager                               noarch                         1.18-2.el7                                 epel                             28 k
为依赖而安装:
 gdbm-devel                                              x86_64                         1.10-8.el7                                 base                             47 k
 libdb-devel                                             x86_64                         5.3.21-25.el7                              base                             39 k
 perl-Class-Load                                         noarch                         0.20-3.el7                                 base                             27 k
 perl-Data-OptList                                       noarch                         0.107-9.el7                                base                             23 k
 perl-Digest                                             noarch                         1.17-245.el7                               base                             23 k
 perl-Digest-SHA                                         x86_64                         1:5.85-4.el7                               base                             58 k
 perl-Email-Date-Format                                  noarch                         1.002-15.el7                               epel                             17 k
 perl-ExtUtils-Install                                   noarch                         1.58-299.el7_9                             updates                          75 k
 perl-ExtUtils-Manifest                                  noarch                         1.61-244.el7                               base                             31 k
 perl-ExtUtils-ParseXS                                   noarch                         1:3.18-3.el7                               base                             77 k
 perl-IO-Socket-IP                                       noarch                         0.21-5.el7                                 base                             36 k
 perl-IO-Socket-SSL                                      noarch                         1.94-7.el7                                 base                            115 k
 perl-List-MoreUtils                                     x86_64                         0.33-9.el7                                 base                             58 k
 perl-MIME-Lite                                          noarch                         3.030-1.el7                                epel                             96 k
 perl-MIME-Types                                         noarch                         1.38-2.el7                                 epel                             38 k
 perl-Mail-Sender                                        noarch                         0.8.23-1.el7                               epel                             59 k
 perl-Mail-Sendmail                                      noarch                         0.79-21.el7                                epel                             29 k
 perl-MailTools                                          noarch                         2.12-2.el7                                 base                            108 k
 perl-Module-Implementation                              noarch                         0.06-6.el7                                 base                             17 k
 perl-Module-Runtime                                     noarch                         0.013-4.el7                                base                             19 k
 perl-Mozilla-CA                                         noarch                         20130114-5.el7                             base                             11 k
 perl-Net-LibIDN                                         x86_64                         0.12-15.el7                                base                             28 k
 perl-Net-SMTP-SSL                                       noarch                         1.01-13.el7                                base                            9.1 k
 perl-Net-SSLeay                                         x86_64                         1.55-6.el7                                 base                            285 k
 perl-Package-DeprecationManager                         noarch                         0.13-7.el7                                 base                             18 k
 perl-Package-Stash                                      noarch                         0.34-2.el7                                 base                             34 k
 perl-Package-Stash-XS                                   x86_64                         0.26-3.el7                                 base                             31 k
 perl-Params-Util                                        x86_64                         1.07-6.el7                                 base                             38 k
 perl-Params-Validate                                    x86_64                         1.08-4.el7                                 base                             69 k
 perl-Sub-Install                                        noarch                         0.926-6.el7                                base                             21 k
 perl-Sys-Syslog                                         x86_64                         0.33-3.el7                                 base                             42 k
 perl-TimeDate                                           noarch                         1:2.30-2.el7                               base                             52 k
 perl-Try-Tiny                                           noarch                         0.12-2.el7                                 base                             23 k
 perl-devel                                              x86_64                         4:5.16.3-299.el7_9                         updates                         454 k
 perl-local-lib                                          noarch                         1.008010-4.el7                             base                             64 k
 pyparsing                                               noarch                         1.5.6-9.el7                                base                             94 k
 systemtap-sdt-devel                                     x86_64                         4.0-13.el7                                 base                             76 k

事务概要
=========================================================================================================================================================================
安装  5 软件包 (+37 依赖软件包)

总下载量:3.0 M
安装大小:7.5 M
Downloading packages:
(1/42): gdbm-devel-1.10-8.el7.x86_64.rpm                                                                                                          |  47 kB  00:00:00     
(2/42): perl-CPAN-1.9800-299.el7_9.noarch.rpm                                                                                                     | 293 kB  00:00:00     
(3/42): perl-Data-OptList-0.107-9.el7.noarch.rpm                                                                                                  |  23 kB  00:00:00     
(4/42): perl-Digest-SHA-5.85-4.el7.x86_64.rpm                                                                                                     |  58 kB  00:00:00     
(5/42): libdb-devel-5.3.21-25.el7.x86_64.rpm                                                                                                      |  39 kB  00:00:00     
(6/42): perl-Class-Load-0.20-3.el7.noarch.rpm                                                                                                     |  27 kB  00:00:00     
warning: /var/cache/yum/x86_64/7/epel/packages/perl-Email-Date-Format-1.002-15.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
perl-Email-Date-Format-1.002-15.el7.noarch.rpm 的公钥尚未安装
(7/42): perl-Email-Date-Format-1.002-15.el7.noarch.rpm                                                                                            |  17 kB  00:00:00     
(8/42): perl-Config-Tiny-2.14-7.el7.noarch.rpm                                                                                                    |  25 kB  00:00:00     
(9/42): perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm                                                                                             | 275 kB  00:00:00     
(10/42): perl-ExtUtils-Manifest-1.61-244.el7.noarch.rpm                                                                                           |  31 kB  00:00:00     
(11/42): perl-IO-Socket-SSL-1.94-7.el7.noarch.rpm                                                                                                 | 115 kB  00:00:00     
(12/42): perl-IO-Socket-IP-0.21-5.el7.noarch.rpm                                                                                                  |  36 kB  00:00:00     
(13/42): perl-List-MoreUtils-0.33-9.el7.x86_64.rpm                                                                                                |  58 kB  00:00:00     
(14/42): perl-Digest-1.17-245.el7.noarch.rpm                                                                                                      |  23 kB  00:00:00     
(15/42): perl-ExtUtils-Install-1.58-299.el7_9.noarch.rpm                                                                                          |  75 kB  00:00:00     
(16/42): perl-ExtUtils-ParseXS-3.18-3.el7.noarch.rpm                                                                                              |  77 kB  00:00:00     
(17/42): perl-Log-Dispatch-2.41-1.el7.1.noarch.rpm                                                                                                |  82 kB  00:00:00     
(18/42): perl-MIME-Lite-3.030-1.el7.noarch.rpm                                                                                                    |  96 kB  00:00:00     
(19/42): perl-MIME-Types-1.38-2.el7.noarch.rpm                                                                                                    |  38 kB  00:00:00     
(20/42): perl-Mail-Sender-0.8.23-1.el7.noarch.rpm                                                                                                 |  59 kB  00:00:00     
(21/42): perl-Mail-Sendmail-0.79-21.el7.noarch.rpm                                                                                                |  29 kB  00:00:00     
(22/42): perl-Module-Implementation-0.06-6.el7.noarch.rpm                                                                                         |  17 kB  00:00:00     
(23/42): perl-Mozilla-CA-20130114-5.el7.noarch.rpm                                                                                                |  11 kB  00:00:00     
(24/42): perl-Net-SMTP-SSL-1.01-13.el7.noarch.rpm                                                                                                 | 9.1 kB  00:00:00     
(25/42): perl-Net-LibIDN-0.12-15.el7.x86_64.rpm                                                                                                   |  28 kB  00:00:00     
(26/42): perl-Net-SSLeay-1.55-6.el7.x86_64.rpm                                                                                                    | 285 kB  00:00:00     
(27/42): perl-Package-DeprecationManager-0.13-7.el7.noarch.rpm                                                                                    |  18 kB  00:00:00     
(28/42): perl-Parallel-ForkManager-1.18-2.el7.noarch.rpm                                                                                          |  28 kB  00:00:00     
(29/42): perl-Package-Stash-XS-0.26-3.el7.x86_64.rpm                                                                                              |  31 kB  00:00:00     
(30/42): perl-Package-Stash-0.34-2.el7.noarch.rpm                                                                                                 |  34 kB  00:00:00     
(31/42): perl-Params-Util-1.07-6.el7.x86_64.rpm                                                                                                   |  38 kB  00:00:00     
(32/42): perl-Params-Validate-1.08-4.el7.x86_64.rpm                                                                                               |  69 kB  00:00:00     
(33/42): perl-Sys-Syslog-0.33-3.el7.x86_64.rpm                                                                                                    |  42 kB  00:00:00     
(34/42): perl-TimeDate-2.30-2.el7.noarch.rpm                                                                                                      |  52 kB  00:00:00     
(35/42): perl-Try-Tiny-0.12-2.el7.noarch.rpm                                                                                                      |  23 kB  00:00:00     
(36/42): perl-devel-5.16.3-299.el7_9.x86_64.rpm                                                                                                   | 454 kB  00:00:00     
(37/42): perl-local-lib-1.008010-4.el7.noarch.rpm                                                                                                 |  64 kB  00:00:00     
(38/42): perl-Module-Runtime-0.013-4.el7.noarch.rpm                                                                                               |  19 kB  00:00:00     
(39/42): perl-MailTools-2.12-2.el7.noarch.rpm                                                                                                     | 108 kB  00:00:00     
(40/42): systemtap-sdt-devel-4.0-13.el7.x86_64.rpm                                                                                                |  76 kB  00:00:00     
(41/42): pyparsing-1.5.6-9.el7.noarch.rpm                                                                                                         |  94 kB  00:00:00     
(42/42): perl-Sub-Install-0.926-6.el7.noarch.rpm                                                                                                  |  21 kB  00:00:00     
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                     1.4 MB/s | 3.0 MB  00:00:02     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 检索密钥
导入 GPG key 0x352C64E5:
 用户ID     : "Fedora EPEL (7) <epel@fedoraproject.org>"
 指纹       : 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 软件包     : epel-release-7-11.noarch (@extras)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : perl-Sub-Install-0.926-6.el7.noarch                                                                                                                 1/42 
  正在安装    : perl-Net-SSLeay-1.55-6.el7.x86_64                                                                                                                   2/42 
  正在安装    : perl-Params-Util-1.07-6.el7.x86_64                                                                                                                  3/42 
  正在安装    : perl-Try-Tiny-0.12-2.el7.noarch                                                                                                                     4/42 
  正在安装    : perl-Module-Runtime-0.013-4.el7.noarch                                                                                                              5/42 
  正在安装    : perl-Module-Implementation-0.06-6.el7.noarch                                                                                                        6/42 
  正在安装    : perl-Params-Validate-1.08-4.el7.x86_64                                                                                                              7/42 
  正在安装    : perl-Data-OptList-0.107-9.el7.noarch                                                                                                                8/42 
  正在安装    : perl-Email-Date-Format-1.002-15.el7.noarch                                                                                                          9/42 
  正在安装    : perl-Digest-1.17-245.el7.noarch                                                                                                                    10/42 
  正在安装    : 1:perl-Digest-SHA-5.85-4.el7.x86_64                                                                                                                11/42 
  正在安装    : perl-Net-LibIDN-0.12-15.el7.x86_64                                                                                                                 12/42 
  正在安装    : 1:perl-TimeDate-2.30-2.el7.noarch                                                                                                                  13/42 
  正在安装    : perl-ExtUtils-Manifest-1.61-244.el7.noarch                                                                                                         14/42 
  正在安装    : perl-Package-Stash-XS-0.26-3.el7.x86_64                                                                                                            15/42 
  正在安装    : perl-IO-Socket-IP-0.21-5.el7.noarch                                                                                                                16/42 
  正在安装    : perl-MIME-Types-1.38-2.el7.noarch                                                                                                                  17/42 
  正在安装    : perl-MIME-Lite-3.030-1.el7.noarch                                                                                                                  18/42 
  正在安装    : perl-Mozilla-CA-20130114-5.el7.noarch                                                                                                              19/42 
  正在安装    : perl-IO-Socket-SSL-1.94-7.el7.noarch                                                                                                               20/42 
  正在安装    : perl-Mail-Sender-0.8.23-1.el7.noarch                                                                                                               21/42 
  正在安装    : perl-Net-SMTP-SSL-1.01-13.el7.noarch                                                                                                               22/42 
  正在安装    : perl-MailTools-2.12-2.el7.noarch                                                                                                                   23/42 
  正在安装    : perl-List-MoreUtils-0.33-9.el7.x86_64                                                                                                              24/42 
  正在安装    : perl-Package-DeprecationManager-0.13-7.el7.noarch                                                                                                  25/42 
  正在安装    : perl-Package-Stash-0.34-2.el7.noarch                                                                                                               26/42 
  正在安装    : perl-Class-Load-0.20-3.el7.noarch                                                                                                                  27/42 
  正在安装    : perl-Sys-Syslog-0.33-3.el7.x86_64                                                                                                                  28/42 
  正在安装    : gdbm-devel-1.10-8.el7.x86_64                                                                                                                       29/42 
  正在安装    : pyparsing-1.5.6-9.el7.noarch                                                                                                                       30/42 
  正在安装    : systemtap-sdt-devel-4.0-13.el7.x86_64                                                                                                              31/42 
  正在安装    : perl-Mail-Sendmail-0.79-21.el7.noarch                                                                                                              32/42 
  正在安装    : libdb-devel-5.3.21-25.el7.x86_64                                                                                                                   33/42 
  正在安装    : perl-ExtUtils-MakeMaker-6.68-3.el7.noarch                                                                                                          34/42 
  正在安装    : perl-ExtUtils-Install-1.58-299.el7_9.noarch                                                                                                        35/42 
  正在安装    : 1:perl-ExtUtils-ParseXS-3.18-3.el7.noarch                                                                                                          36/42 
  正在安装    : 4:perl-devel-5.16.3-299.el7_9.x86_64                                                                                                               37/42 
  正在安装    : perl-local-lib-1.008010-4.el7.noarch                                                                                                               38/42 
  正在安装    : perl-CPAN-1.9800-299.el7_9.noarch                                                                                                                  39/42 
  正在安装    : perl-Log-Dispatch-2.41-1.el7.1.noarch                                                                                                              40/42 
  正在安装    : perl-Config-Tiny-2.14-7.el7.noarch                                                                                                                 41/42 
  正在安装    : perl-Parallel-ForkManager-1.18-2.el7.noarch                                                                                                        42/42 
  验证中      : perl-local-lib-1.008010-4.el7.noarch                                                                                                                1/42 
  验证中      : perl-Module-Runtime-0.013-4.el7.noarch                                                                                                              2/42 
  验证中      : libdb-devel-5.3.21-25.el7.x86_64                                                                                                                    3/42 
  验证中      : perl-Mail-Sendmail-0.79-21.el7.noarch                                                                                                               4/42 
  验证中      : perl-MailTools-2.12-2.el7.noarch                                                                                                                    5/42 
  验证中      : perl-ExtUtils-Install-1.58-299.el7_9.noarch                                                                                                         6/42 
  验证中      : perl-Try-Tiny-0.12-2.el7.noarch                                                                                                                     7/42 
  验证中      : perl-Parallel-ForkManager-1.18-2.el7.noarch                                                                                                         8/42 
  验证中      : 1:perl-ExtUtils-ParseXS-3.18-3.el7.noarch                                                                                                           9/42 
  验证中      : pyparsing-1.5.6-9.el7.noarch                                                                                                                       10/42 
  验证中      : gdbm-devel-1.10-8.el7.x86_64                                                                                                                       11/42 
  验证中      : perl-Mail-Sender-0.8.23-1.el7.noarch                                                                                                               12/42 
  验证中      : perl-ExtUtils-MakeMaker-6.68-3.el7.noarch                                                                                                          13/42 
  验证中      : perl-Config-Tiny-2.14-7.el7.noarch                                                                                                                 14/42 
  验证中      : systemtap-sdt-devel-4.0-13.el7.x86_64                                                                                                              15/42 
  验证中      : perl-Sys-Syslog-0.33-3.el7.x86_64                                                                                                                  16/42 
  验证中      : perl-List-MoreUtils-0.33-9.el7.x86_64                                                                                                              17/42 
  验证中      : perl-IO-Socket-SSL-1.94-7.el7.noarch                                                                                                               18/42 
  验证中      : perl-Mozilla-CA-20130114-5.el7.noarch                                                                                                              19/42 
  验证中      : 4:perl-devel-5.16.3-299.el7_9.x86_64                                                                                                               20/42 
  验证中      : perl-MIME-Types-1.38-2.el7.noarch                                                                                                                  21/42 
  验证中      : perl-Params-Util-1.07-6.el7.x86_64                                                                                                                 22/42 
  验证中      : perl-Package-Stash-0.34-2.el7.noarch                                                                                                               23/42 
  验证中      : perl-IO-Socket-IP-0.21-5.el7.noarch                                                                                                                24/42 
  验证中      : perl-Package-Stash-XS-0.26-3.el7.x86_64                                                                                                            25/42 
  验证中      : perl-MIME-Lite-3.030-1.el7.noarch                                                                                                                  26/42 
  验证中      : perl-Net-SSLeay-1.55-6.el7.x86_64                                                                                                                  27/42 
  验证中      : perl-Params-Validate-1.08-4.el7.x86_64                                                                                                             28/42 
  验证中      : perl-Class-Load-0.20-3.el7.noarch                                                                                                                  29/42 
  验证中      : perl-Log-Dispatch-2.41-1.el7.1.noarch                                                                                                              30/42 
  验证中      : perl-Package-DeprecationManager-0.13-7.el7.noarch                                                                                                  31/42 
  验证中      : perl-ExtUtils-Manifest-1.61-244.el7.noarch                                                                                                         32/42 
  验证中      : perl-Net-SMTP-SSL-1.01-13.el7.noarch                                                                                                               33/42 
  验证中      : perl-Sub-Install-0.926-6.el7.noarch                                                                                                                34/42 
  验证中      : perl-CPAN-1.9800-299.el7_9.noarch                                                                                                                  35/42 
  验证中      : perl-Module-Implementation-0.06-6.el7.noarch                                                                                                       36/42 
  验证中      : 1:perl-TimeDate-2.30-2.el7.noarch                                                                                                                  37/42 
  验证中      : 1:perl-Digest-SHA-5.85-4.el7.x86_64                                                                                                                38/42 
  验证中      : perl-Data-OptList-0.107-9.el7.noarch                                                                                                               39/42 
  验证中      : perl-Net-LibIDN-0.12-15.el7.x86_64                                                                                                                 40/42 
  验证中      : perl-Digest-1.17-245.el7.noarch                                                                                                                    41/42 
  验证中      : perl-Email-Date-Format-1.002-15.el7.noarch                                                                                                         42/42 

已安装:
  perl-CPAN.noarch 0:1.9800-299.el7_9           perl-Config-Tiny.noarch 0:2.14-7.el7 perl-ExtUtils-MakeMaker.noarch 0:6.68-3.el7 perl-Log-Dispatch.noarch 0:2.41-1.el7.1
  perl-Parallel-ForkManager.noarch 0:1.18-2.el7

作为依赖被安装:
  gdbm-devel.x86_64 0:1.10-8.el7                              libdb-devel.x86_64 0:5.3.21-25.el7                    perl-Class-Load.noarch 0:0.20-3.el7                 
  perl-Data-OptList.noarch 0:0.107-9.el7                      perl-Digest.noarch 0:1.17-245.el7                     perl-Digest-SHA.x86_64 1:5.85-4.el7                 
  perl-Email-Date-Format.noarch 0:1.002-15.el7                perl-ExtUtils-Install.noarch 0:1.58-299.el7_9         perl-ExtUtils-Manifest.noarch 0:1.61-244.el7        
  perl-ExtUtils-ParseXS.noarch 1:3.18-3.el7                   perl-IO-Socket-IP.noarch 0:0.21-5.el7                 perl-IO-Socket-SSL.noarch 0:1.94-7.el7              
  perl-List-MoreUtils.x86_64 0:0.33-9.el7                     perl-MIME-Lite.noarch 0:3.030-1.el7                   perl-MIME-Types.noarch 0:1.38-2.el7                 
  perl-Mail-Sender.noarch 0:0.8.23-1.el7                      perl-Mail-Sendmail.noarch 0:0.79-21.el7               perl-MailTools.noarch 0:2.12-2.el7                  
  perl-Module-Implementation.noarch 0:0.06-6.el7              perl-Module-Runtime.noarch 0:0.013-4.el7              perl-Mozilla-CA.noarch 0:20130114-5.el7             
  perl-Net-LibIDN.x86_64 0:0.12-15.el7                        perl-Net-SMTP-SSL.noarch 0:1.01-13.el7                perl-Net-SSLeay.x86_64 0:1.55-6.el7                 
  perl-Package-DeprecationManager.noarch 0:0.13-7.el7         perl-Package-Stash.noarch 0:0.34-2.el7                perl-Package-Stash-XS.x86_64 0:0.26-3.el7           
  perl-Params-Util.x86_64 0:1.07-6.el7                        perl-Params-Validate.x86_64 0:1.08-4.el7              perl-Sub-Install.noarch 0:0.926-6.el7               
  perl-Sys-Syslog.x86_64 0:0.33-3.el7                         perl-TimeDate.noarch 1:2.30-2.el7                     perl-Try-Tiny.noarch 0:0.12-2.el7                   
  perl-devel.x86_64 4:5.16.3-299.el7_9                        perl-local-lib.noarch 0:1.008010-4.el7                pyparsing.noarch 0:1.5.6-9.el7                      
  systemtap-sdt-devel.x86_64 0:4.0-13.el7                    

完毕!

2.3..2 node

所有节点安装node(四台机子都需要)

tar xf mha4mysql-node-0.57.tar.gz

cd mha4mysql-node-0.57

perl Makefile.PL && make && make install

bash 复制代码
[root@mgt ~]# cd mha4mysql-node-0.57
[root@mgt mha4mysql-node-0.57]# perl Makefile.PL && make && make install
*** Module::AutoInstall version 1.06
*** Checking for Perl dependencies...
[Core Features]
- DBI        ...loaded. (1.627)
- DBD::mysql ...loaded. (4.023)
*** Module::AutoInstall configuration finished.
Checking if your kit is complete...
Looks good
Writing Makefile for mha4mysql::node
cp lib/MHA/BinlogManager.pm blib/lib/MHA/BinlogManager.pm
cp lib/MHA/BinlogPosFindManager.pm blib/lib/MHA/BinlogPosFindManager.pm
cp lib/MHA/BinlogPosFinderXid.pm blib/lib/MHA/BinlogPosFinderXid.pm
cp lib/MHA/BinlogHeaderParser.pm blib/lib/MHA/BinlogHeaderParser.pm
cp lib/MHA/BinlogPosFinder.pm blib/lib/MHA/BinlogPosFinder.pm
cp lib/MHA/NodeUtil.pm blib/lib/MHA/NodeUtil.pm
cp lib/MHA/BinlogPosFinderElp.pm blib/lib/MHA/BinlogPosFinderElp.pm
cp lib/MHA/SlaveUtil.pm blib/lib/MHA/SlaveUtil.pm
cp lib/MHA/NodeConst.pm blib/lib/MHA/NodeConst.pm
cp bin/filter_mysqlbinlog blib/script/filter_mysqlbinlog
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/filter_mysqlbinlog
cp bin/apply_diff_relay_logs blib/script/apply_diff_relay_logs
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/apply_diff_relay_logs
cp bin/purge_relay_logs blib/script/purge_relay_logs
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/purge_relay_logs
cp bin/save_binary_logs blib/script/save_binary_logs
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/save_binary_logs
Manifying blib/man1/filter_mysqlbinlog.1
Manifying blib/man1/apply_diff_relay_logs.1
Manifying blib/man1/purge_relay_logs.1
Manifying blib/man1/save_binary_logs.1
Installing /usr/local/share/perl5/MHA/BinlogManager.pm
Installing /usr/local/share/perl5/MHA/BinlogPosFindManager.pm
Installing /usr/local/share/perl5/MHA/BinlogPosFinderXid.pm
Installing /usr/local/share/perl5/MHA/BinlogHeaderParser.pm
Installing /usr/local/share/perl5/MHA/BinlogPosFinder.pm
Installing /usr/local/share/perl5/MHA/NodeUtil.pm
Installing /usr/local/share/perl5/MHA/BinlogPosFinderElp.pm
Installing /usr/local/share/perl5/MHA/SlaveUtil.pm
Installing /usr/local/share/perl5/MHA/NodeConst.pm
Installing /usr/local/share/man/man1/filter_mysqlbinlog.1
Installing /usr/local/share/man/man1/apply_diff_relay_logs.1
Installing /usr/local/share/man/man1/purge_relay_logs.1
Installing /usr/local/share/man/man1/save_binary_logs.1
Installing /usr/local/bin/filter_mysqlbinlog
Installing /usr/local/bin/apply_diff_relay_logs
Installing /usr/local/bin/purge_relay_logs
Installing /usr/local/bin/save_binary_logs
Appending installation info to /usr/lib64/perl5/perllocal.pod

验证

cd /usr/local/bin

看到脚本就OK

2.3.3 manager (只在mgt上装)

tar xf mha4mysql-manager-0.57.tar.gz

cd /root/mha4mysql-manager-0.57

perl Makefile.PL && make && make install

cp sample/scripts/master_ip_failover /usr/local/bin/

cp sample/scripts/master_ip_online_change /usr/local/bin/

bash 复制代码
[root@mgt ~]# cd mha4mysql-manager-0.57
[root@mgt mha4mysql-manager-0.57]# ls
AUTHORS  bin  COPYING  debian  inc  lib  Makefile.PL  MANIFEST  META.yml  README  rpm  samples  t  tests
[root@mgt mha4mysql-manager-0.57]# perl Makefile.PL && make && make install
*** Module::AutoInstall version 1.06
*** Checking for Perl dependencies...
[Core Features]
- DBI                   ...loaded. (1.627)
- DBD::mysql            ...loaded. (4.023)
- Time::HiRes           ...loaded. (1.9725)
- Config::Tiny          ...loaded. (2.14)
- Log::Dispatch         ...loaded. (2.41)
- Parallel::ForkManager ...loaded. (1.18)
- MHA::NodeConst        ...loaded. (0.57)
*** Module::AutoInstall configuration finished.
Checking if your kit is complete...
Looks good
Writing Makefile for mha4mysql::manager
cp lib/MHA/ManagerUtil.pm blib/lib/MHA/ManagerUtil.pm
cp lib/MHA/Config.pm blib/lib/MHA/Config.pm
cp lib/MHA/HealthCheck.pm blib/lib/MHA/HealthCheck.pm
cp lib/MHA/ServerManager.pm blib/lib/MHA/ServerManager.pm
cp lib/MHA/ManagerConst.pm blib/lib/MHA/ManagerConst.pm
cp lib/MHA/ManagerAdmin.pm blib/lib/MHA/ManagerAdmin.pm
cp lib/MHA/FileStatus.pm blib/lib/MHA/FileStatus.pm
cp lib/MHA/MasterFailover.pm blib/lib/MHA/MasterFailover.pm
cp lib/MHA/ManagerAdminWrapper.pm blib/lib/MHA/ManagerAdminWrapper.pm
cp lib/MHA/MasterMonitor.pm blib/lib/MHA/MasterMonitor.pm
cp lib/MHA/MasterRotate.pm blib/lib/MHA/MasterRotate.pm
cp lib/MHA/SSHCheck.pm blib/lib/MHA/SSHCheck.pm
cp lib/MHA/Server.pm blib/lib/MHA/Server.pm
cp lib/MHA/DBHelper.pm blib/lib/MHA/DBHelper.pm
cp bin/masterha_stop blib/script/masterha_stop
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_stop
cp bin/masterha_conf_host blib/script/masterha_conf_host
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_conf_host
cp bin/masterha_check_repl blib/script/masterha_check_repl
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_check_repl
cp bin/masterha_check_status blib/script/masterha_check_status
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_check_status
cp bin/masterha_master_monitor blib/script/masterha_master_monitor
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_master_monitor
cp bin/masterha_check_ssh blib/script/masterha_check_ssh
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_check_ssh
cp bin/masterha_master_switch blib/script/masterha_master_switch
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_master_switch
cp bin/masterha_secondary_check blib/script/masterha_secondary_check
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_secondary_check
cp bin/masterha_manager blib/script/masterha_manager
/usr/bin/perl "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/masterha_manager
Manifying blib/man1/masterha_stop.1
Manifying blib/man1/masterha_conf_host.1
Manifying blib/man1/masterha_check_repl.1
Manifying blib/man1/masterha_check_status.1
Manifying blib/man1/masterha_master_monitor.1
Manifying blib/man1/masterha_check_ssh.1
Manifying blib/man1/masterha_master_switch.1
Manifying blib/man1/masterha_secondary_check.1
Manifying blib/man1/masterha_manager.1
Installing /usr/local/share/perl5/MHA/ManagerUtil.pm
Installing /usr/local/share/perl5/MHA/Config.pm
Installing /usr/local/share/perl5/MHA/HealthCheck.pm
Installing /usr/local/share/perl5/MHA/ServerManager.pm
Installing /usr/local/share/perl5/MHA/ManagerConst.pm
Installing /usr/local/share/perl5/MHA/ManagerAdmin.pm
Installing /usr/local/share/perl5/MHA/FileStatus.pm
Installing /usr/local/share/perl5/MHA/MasterFailover.pm
Installing /usr/local/share/perl5/MHA/ManagerAdminWrapper.pm
Installing /usr/local/share/perl5/MHA/MasterMonitor.pm
Installing /usr/local/share/perl5/MHA/MasterRotate.pm
Installing /usr/local/share/perl5/MHA/SSHCheck.pm
Installing /usr/local/share/perl5/MHA/Server.pm
Installing /usr/local/share/perl5/MHA/DBHelper.pm
Installing /usr/local/share/man/man1/masterha_stop.1
Installing /usr/local/share/man/man1/masterha_conf_host.1
Installing /usr/local/share/man/man1/masterha_check_repl.1
Installing /usr/local/share/man/man1/masterha_check_status.1
Installing /usr/local/share/man/man1/masterha_master_monitor.1
Installing /usr/local/share/man/man1/masterha_check_ssh.1
Installing /usr/local/share/man/man1/masterha_master_switch.1
Installing /usr/local/share/man/man1/masterha_secondary_check.1
Installing /usr/local/share/man/man1/masterha_manager.1
Installing /usr/local/bin/masterha_stop
Installing /usr/local/bin/masterha_conf_host
Installing /usr/local/bin/masterha_check_repl
Installing /usr/local/bin/masterha_check_status
Installing /usr/local/bin/masterha_master_monitor
Installing /usr/local/bin/masterha_check_ssh
Installing /usr/local/bin/masterha_master_switch
Installing /usr/local/bin/masterha_secondary_check
Installing /usr/local/bin/masterha_manager
Appending installation info to /usr/lib64/perl5/perllocal.pod
[root@mgt mha4mysql-manager-0.57]# ls
AUTHORS  bin  blib  COPYING  debian  inc  lib  Makefile  Makefile.PL  MANIFEST  META.yml  pm_to_blib  README  rpm  samples  t  tests

脚本说明

master_ip_failover 自动切换时 VIP 管理的脚本

bash 复制代码
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';

use Getopt::Long;

my (
$command, $ssh_user, $orig_master_host, $orig_master_ip,
$orig_master_port, $new_master_host, $new_master_ip, $new_master_port
);
#############################添加内容部分#########################################
my $vip = '192.168.184.200';								#指定vip的地址
my $brdc = '192.168.184.255';								#指定vip的广播地址
my $ifdev = 'ens33';										#指定vip绑定的网卡
my $key = '1';												#指定vip绑定的虚拟网卡序列号
my $ssh_start_vip = "/sbin/ifconfig ens33:$key $vip";		#代表此变量值为ifconfig ens33:1 192.168.184.200
my $ssh_stop_vip = "/sbin/ifconfig ens33:$key down";		#代表此变量值为ifconfig ens33:1 192.168.184.200 down
my $exit_code = 0;											#指定退出状态码为0
#my $ssh_start_vip = "/usr/sbin/ip addr add $vip/24 brd $brdc dev $ifdev label $ifdev:$key;/usr/sbin/arping -q -A -c 1 -I $ifdev $vip;iptables -F;";
#my $ssh_stop_vip = "/usr/sbin/ip addr del $vip/24 dev $ifdev label $ifdev:$key";
##################################################################################
GetOptions(
'command=s' => \$command,
'ssh_user=s' => \$ssh_user,
'orig_master_host=s' => \$orig_master_host,
'orig_master_ip=s' => \$orig_master_ip,
'orig_master_port=i' => \$orig_master_port,
'new_master_host=s' => \$new_master_host,
'new_master_ip=s' => \$new_master_ip,
'new_master_port=i' => \$new_master_port,
);

exit &main();

sub main {

print "\n\nIN SCRIPT TEST====$ssh_stop_vip==$ssh_start_vip===\n\n";

if ( $command eq "stop" || $command eq "stopssh" ) {

my $exit_code = 1;
eval {
print "Disabling the VIP on old master: $orig_master_host \n";
&stop_vip();
$exit_code = 0;
};
if ($@) {
warn "Got Error: $@\n";
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "start" ) {

my $exit_code = 10;
eval {
print "Enabling the VIP - $vip on the new master - $new_master_host \n";
&start_vip();
$exit_code = 0;
};
if ($@) {
warn $@;
exit $exit_code;
}
exit $exit_code;
}
elsif ( $command eq "status" ) {
print "Checking the Status of the script.. OK \n";
exit 0;
}
else {
&usage();
exit 1;
}
}
sub start_vip() {
`ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`;
}
## A simple system call that disable the VIP on the old_master
sub stop_vip() {
`ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
}

sub usage {
print
"Usage: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port\n";
}

master_ip_online_change 在线切换时 vip 的管理

power_manager 故障发生后关闭主机的脚本

send_report 因故障切换后发送报警的脚本

配置文件建立

mkdir /etc/masterha

vim /etc/masterha/app1.cnf

bash 复制代码
[server default]
manager_log=/var/log/masterha/app1/manager.log
manager_workdir=/var/log/masterha/app1
master_binlog_dir=/var/lib/mysql
master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
password=123.com
ping_interval=1
remote_workdir=/tmp
repl_password=123.com
repl_user=myslave
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.156.5 -s 192.168.156.6
shutdown_script=""
ssh_user=root
user=mha

[server1]
hostname=192.168.156.4
port=3306

[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.156.5
port=3306

[server3]
hostname=192.168.156.6
port=3306

mkdir /var/log/masterha/app1

测试MHA

masterha_check_ssh --conf=/etc/masterha/app1.cnf

masterha_check_repl --conf=/etc/masterha/app1.cnf

bash 复制代码
[root@mgt ~]# masterha_check_repl --conf=/etc/masterha/app1.cnf
Wed Aug 16 09:33:43 2023 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Wed Aug 16 09:33:43 2023 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
Wed Aug 16 09:33:43 2023 - [info] Reading server configuration from /etc/masterha/app1.cnf..
Wed Aug 16 09:33:43 2023 - [info] MHA::MasterMonitor version 0.57.
Wed Aug 16 09:33:45 2023 - [info] GTID failover mode = 0
Wed Aug 16 09:33:45 2023 - [info] Dead Servers:
Wed Aug 16 09:33:45 2023 - [info] Alive Servers:
Wed Aug 16 09:33:45 2023 - [info]   192.168.156.4(192.168.156.4:3306)
Wed Aug 16 09:33:45 2023 - [info]   192.168.156.5(192.168.156.5:3306)
Wed Aug 16 09:33:45 2023 - [info]   192.168.156.6(192.168.156.6:3306)
Wed Aug 16 09:33:45 2023 - [info] Alive Slaves:
Wed Aug 16 09:33:45 2023 - [info]   192.168.156.5(192.168.156.5:3306)  Version=5.5.68-MariaDB (oldest major version between slaves) log-bin:enabled
Wed Aug 16 09:33:45 2023 - [info]     Replicating from 192.168.156.4(192.168.156.4:3306)
Wed Aug 16 09:33:45 2023 - [info]     Primary candidate for the new Master (candidate_master is set)
Wed Aug 16 09:33:45 2023 - [info]   192.168.156.6(192.168.156.6:3306)  Version=5.5.68-MariaDB (oldest major version between slaves) log-bin:enabled
Wed Aug 16 09:33:45 2023 - [info]     Replicating from 192.168.156.4(192.168.156.4:3306)
Wed Aug 16 09:33:45 2023 - [info] Current Alive Master: 192.168.156.4(192.168.156.4:3306)
Wed Aug 16 09:33:45 2023 - [info] Checking slave configurations..
Wed Aug 16 09:33:45 2023 - [info]  read_only=1 is not set on slave 192.168.156.5(192.168.156.5:3306).
Wed Aug 16 09:33:45 2023 - [warning]  relay_log_purge=0 is not set on slave 192.168.156.5(192.168.156.5:3306).
Wed Aug 16 09:33:45 2023 - [info]  read_only=1 is not set on slave 192.168.156.6(192.168.156.6:3306).
Wed Aug 16 09:33:45 2023 - [warning]  relay_log_purge=0 is not set on slave 192.168.156.6(192.168.156.6:3306).
Wed Aug 16 09:33:45 2023 - [info] Checking replication filtering settings..
Wed Aug 16 09:33:45 2023 - [info]  binlog_do_db= , binlog_ignore_db= 
Wed Aug 16 09:33:45 2023 - [info]  Replication filtering check ok.
Wed Aug 16 09:33:45 2023 - [info] GTID (with auto-pos) is not supported
Wed Aug 16 09:33:45 2023 - [info] Starting SSH connection tests..
Wed Aug 16 09:33:49 2023 - [info] All SSH connection tests passed successfully.
Wed Aug 16 09:33:49 2023 - [info] Checking MHA Node version..
Wed Aug 16 09:33:51 2023 - [info]  Version check ok.
Wed Aug 16 09:33:51 2023 - [info] Checking SSH publickey authentication settings on the current master..
Wed Aug 16 09:33:51 2023 - [info] HealthCheck: SSH to 192.168.156.4 is reachable.
Wed Aug 16 09:33:52 2023 - [info] Master MHA Node version is 0.57.
Wed Aug 16 09:33:52 2023 - [info] Checking recovery script configurations on 192.168.156.4(192.168.156.4:3306)..
Wed Aug 16 09:33:52 2023 - [info]   Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/var/lib/mysql --output_file=/tmp/save_binary_logs_test --manager_version=0.57 --start_file=master-bin.000003 
Wed Aug 16 09:33:52 2023 - [info]   Connecting to root@192.168.156.4(192.168.156.4:22).. 
  Creating /tmp if not exists..    ok.
  Checking output directory is accessible or not..
   ok.
  Binlog found at /var/lib/mysql, up to master-bin.000003
Wed Aug 16 09:33:53 2023 - [info] Binlog setting check done.
Wed Aug 16 09:33:53 2023 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Wed Aug 16 09:33:53 2023 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user='mha' --slave_host=192.168.156.5 --slave_ip=192.168.156.5 --slave_port=3306 --workdir=/tmp --target_version=5.5.68-MariaDB --manager_version=0.57 --relay_log_info=/var/lib/mysql/relay-log.info  --relay_dir=/var/lib/mysql/  --slave_pass=xxx
Wed Aug 16 09:33:53 2023 - [info]   Connecting to root@192.168.156.5(192.168.156.5:22).. 
  Checking slave recovery environment settings..
    Opening /var/lib/mysql/relay-log.info ... ok.
    Relay log found at /var/lib/mysql, up to relay-bin.000002
    Temporary relay log file is /var/lib/mysql/relay-bin.000002
    Testing mysql connection and privileges.. done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Wed Aug 16 09:33:54 2023 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user='mha' --slave_host=192.168.156.6 --slave_ip=192.168.156.6 --slave_port=3306 --workdir=/tmp --target_version=5.5.68-MariaDB --manager_version=0.57 --relay_log_info=/var/lib/mysql/relay-log.info  --relay_dir=/var/lib/mysql/  --slave_pass=xxx
Wed Aug 16 09:33:54 2023 - [info]   Connecting to root@192.168.156.6(192.168.156.6:22).. 
  Checking slave recovery environment settings..
    Opening /var/lib/mysql/relay-log.info ... ok.
    Relay log found at /var/lib/mysql, up to relay-bin.000002
    Temporary relay log file is /var/lib/mysql/relay-bin.000002
    Testing mysql connection and privileges.. done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Wed Aug 16 09:33:55 2023 - [info] Slaves settings check done.
Wed Aug 16 09:33:55 2023 - [info] 
192.168.156.4(192.168.156.4:3306) (current master)
 +--192.168.156.5(192.168.156.5:3306)
 +--192.168.156.6(192.168.156.6:3306)

Wed Aug 16 09:33:55 2023 - [info] Checking replication health on 192.168.156.5..
Wed Aug 16 09:33:55 2023 - [info]  ok.
Wed Aug 16 09:33:55 2023 - [info] Checking replication health on 192.168.156.6..
Wed Aug 16 09:33:55 2023 - [info]  ok.
Wed Aug 16 09:33:55 2023 - [info] Checking master_ip_failover_script status:
Wed Aug 16 09:33:55 2023 - [info]   /usr/local/bin/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.156.4 --orig_master_ip=192.168.156.4 --orig_master_port=3306 


IN SCRIPT TEST====/sbin/ifconfig ens33:1 down==/sbin/ifconfig ens33:1 192.168.156.100===

Usage: master_ip_failover --command=start|stop|stopssh|status --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port
Wed Aug 16 09:33:55 2023 - [warning] shutdown_script is not defined.
Wed Aug 16 09:33:55 2023 - [info] Got exit code 0 (Not master dead).

MySQL Replication Health is OK.

启动命令

nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &

启动时masterIP异常

需要工程手动配置VIP

2.3.4 测试

停用master的mariadb服务

master

slave1

2.3.5 故障恢复

修改app1.cnf启动配置

添加master主机配置信息

分别在slave上重新指定master主机及binlog日志同步信息


总结

总结来说,MHA是一种简单而有效的高可用解决方案,可以确保MySQL和MariaDB数据库在主节点故障时能够自动切换到可用的从节点上,从而保证数据库的连续性和可用性。

相关推荐
心灵彼岸-诗和远方16 分钟前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘21 分钟前
NFS服务器
运维·服务器
苹果醋31 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰1 小时前
[linux]docker基础
linux·运维·docker
知孤云出岫2 小时前
云上拼团GO指南——腾讯云博客部署案例,双11欢乐GO
云计算·腾讯云
Jason-河山2 小时前
【自动化更新,让商品信息跳舞】——利用API返回值的幽默编程之旅
运维·自动化
饮浊酒2 小时前
Linux操作系统 ------(3.文本编译器Vim)
linux·vim
lihuhelihu2 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
哲讯智能科技2 小时前
SAP Business One市场价格解析
运维·sap·erp
矛取矛求2 小时前
Linux系统性能调优技巧
linux