您的位置:首页 > 运维架构 > 网站架构

MHA高可用MySQL搭建+MySQL半同步复制+常见异常处理

2018-02-01 15:05 1121 查看
部署环境:

操作系统
CentOS 7.2
MySQL版本
5.6.25
mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz
MHA版本
mha4mysql-manager-0.56-0.el6.noarch.rpm
mha4mysql-node-0.56-0.el6.noarch.rpm
EPEL
epel-release-7-6.noarch.rpm
相关链接:

MHA官方地址:https://code.google.com/archive/p/mysql-master-ha/wikis/TableOfContents.wiki

包下载地址:https://downloads.mariadb.com/MHA/

MHA  github地址:https://github.com/yoshinorim/mha4mysql-manager/wiki/Architecture

MHA  下载页面:https://github.com/yoshinorim/mha4mysql-manager/wiki/Downloads

EPEL补充包下载:https://centos.pkgs.org/7/centos-extras-x86_64/epel-release-7-6.noarch.rpm.html

安装MHA遇到的坑:http://niubdada.blog.51cto.com/3511133/1843217

安装部署参考链接2: http://www.cnblogs.com/gomysql/p/3675429.html

MHA作者介绍PPT:https://www.slideshare.net/matsunobu/automated-master-failover



1:MHA介绍



MHA组件:



2:下载MHA包
  

通过链接:https://downloads.mariadb.com/MHA/ 
下载版本 0.56.



3:下载EPEL扩展包

通过链接:https://centos.pkgs.org/7/centos-extras-x86_64/epel-release-7-6.noarch.rpm.html




4:在监控节点上安装MHA-Manager包

     (必须先安装Node包,再安装Manager包,依赖问题)

     [b]安装MHA Manger依赖的perl模块:[/b]

    通过执行: yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
 请参考如下安装记录流程.

          
[root@i-f6wk8ncx software]# uname -a 
Linux i-f6wk8ncx 3.10.0-229.4.2.el7.x86_64 #1 SMP Wed May 13 10:06:09 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@i-f6wk8ncx software]# yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base                                                                                                                                                           | 3.6 kB  00:00:00     
extras                                                                                                                                                         | 3.4 kB  00:00:00     
percona-release-noarch                                                                                                                                         | 2.4 kB  00:00:00     
percona-release-x86_64                                                                                                                                         | 2.9 kB  00:00:00     
updates                                                                                                                                                        | 3.4 kB  00:00:00     
(1/5): base/7/x86_64/group_gz                                                                                                                                  | 156 kB  00:00:00     
(2/5): extras/7/x86_64/primary_db                                                                                                                              | 101 kB  00:00:01     
(3/5): updates/7/x86_64/primary_db                                                                                                                             | 2.8 MB  00:00:05     
(4/5): base/7/x86_64/primary_db                                                                                                                                | 5.7 MB  00:00:08     
(5/5): percona-release-x86_64/7/x86_64/primary_db                                                                                                              | 618 kB  00:00:19     
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package perl-DBD-MySQL-4.023-5.el7.x86_64 already installed and latest version
No package perl-Log-Dispatch available.
No package perl-Parallel-ForkManager available.
Package 4:perl-Time-HiRes-1.9725-3.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package perl-Config-Tiny.noarch 0:2.14-7.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================================
 Package                                           Arch                                    Version                                        Repository                             Size
======================================================================================================================================================================================
Installing:
 perl-Config-Tiny                                  noarch                                  2.14-7.el7                                     base                                   25 k

Transaction Summary
======================================================================================================================================================================================
Install  1 Package

Total download size: 25 k
Installed size: 39 k
Is this ok [y/d/N]: y
Downloading packages:
perl-Config-Tiny-2.14-7.el7.noarch.rpm                                                                                                                         |  25 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : perl-Config-Tiny-2.14-7.el7.noarch                                                                                                                                 1/1 
  Verifying  : perl-Config-Tiny-2.14-7.el7.noarch                                                                                                                                 1/1 

Installed:
  perl-Config-Tiny.noarch 0:2.14-7.el7                                                                                                                                                

Complete!
[root@i-f6wk8ncx software]# yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package perl-DBD-MySQL-4.023-5.el7.x86_64 already installed and latest version
Package perl-Config-Tiny-2.14-7.el7.noarch already installed and latest version
No package perl-Log-Dispatch available.
No package perl-Parallel-ForkManager available.
Package 4:perl-Time-HiRes-1.9725-3.el7.x86_64 already installed and latest version
Nothing to do
[root@i-f6wk8ncx software]#

遇到缺少包的问题,那么继续安装补充包EPEL:

[root@i-f6wk8ncx software]# yum localinstall --nogpgcheck epel-release-7-6.noarch.rpm 
Loaded plugins: fastestmirror
Examining epel-release-7-6.noarch.rpm: epel-release-7-6.noarch
Marking epel-release-7-6.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================================
 Package                                     Arch                                  Version                              Repository                                               Size
======================================================================================================================================================================================
Installing:
 epel-release                                noarch                                7-6                                  /epel-release-7-6.noarch                                 24 k

Transaction Summary
======================================================================================================================================================================================
Install  1 Package

Total size: 24 k
Installed size: 24 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : epel-release-7-6.noarch                                                                                                                                            1/1 
  Verifying  : epel-release-7-6.noarch                                                                                                                                            1/1 

Installed:
  epel-release.noarch 0:7-6                                                                                                                                                           

Complete!
[root@i-f6wk8ncx software]# 
[root@i-f6wk8ncx software]# 
[root@i-f6wk8ncx software]# yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
Loaded plugins: fastestmirror
epel/x86_64/metalink                                                                                                                                           | 5.4 kB  00:00:00     
epel                                                                                                                                                           | 4.3 kB  00:00:00     
(1/3): epel/x86_64/group_gz                                                                                                                                    | 170 kB  00:00:03     
(2/3): epel/x86_64/updateinfo                                                                                                                                  | 821 kB  00:00:16     
(3/3): epel/x86_64/primary_db                                                                                                                                  | 4.8 MB  00:03:25     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package perl-DBD-MySQL-4.023-5.el7.x86_64 already installed and latest version
Package perl-Config-Tiny-2.14-7.el7.noarch already installed and latest version
Package 4:perl-Time-HiRes-1.9725-3.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package perl-Log-Dispatch.noarch 0:2.41-1.el7.1 will be installed
--> Processing Dependency: perl(Sys::Syslog) >= 0.25 for package: perl-Log-Dispatch-2.41-1.el7.1.noarch
--> Processing Dependency: perl(Params::Validate) >= 0.15 for package: perl-Log-Dispatch-2.41-1.el7.1.noarch
--> Processing Dependency: perl(Params::Validate) for package: perl-Log-Dispatch-2.41-1.el7.1.noarch
--> Processing Dependency: perl(Mail::Sendmail) for package: perl-Log-Dispatch-2.41-1.el7.1.noarch
--> Processing Dependency: perl(Mail::Sender) for package: perl-Log-Dispatch-2.41-1.el7.1.noarch
--> Processing Dependency: perl(Mail::Send) for package: perl-Log-Dispatch-2.41-1.el7.1.noarch
--> Processing Dependency: perl(MIME::Lite) for package: perl-Log-Dispatch-2.41-1.el7.1.noarch
--> Processing Dependency: perl(Class::Load) for package: perl-Log-Dispatch-2.41-1.el7.1.noarch
---> Package perl-Parallel-ForkManager.noarch 0:1.18-2.el7 will be installed
--> Running transaction check
---> Package perl-Class-Load.noarch 0:0.20-3.el7 will be installed
--> Processing Dependency: perl(Package::Stash) >= 0.14 for package: perl-Class-Load-0.20-3.el7.noarch
--> Processing Dependency: perl(Module::Runtime) >= 0.012 for package: perl-Class-Load-0.20-3.el7.noarch
--> Processing Dependency: perl(Module::Implementation) >= 0.04 for package: perl-Class-Load-0.20-3.el7.noarch
--> Processing Dependency: perl(Try::Tiny) for package: perl-Class-Load-0.20-3.el7.noarch
--> Processing Dependency: perl(Module::Runtime) for package: perl-Class-Load-0.20-3.el7.noarch
--> Processing Dependency: perl(Data::OptList) for package: perl-Class-Load-0.20-3.el7.noarch
---> Package perl-MIME-Lite.noarch 0:3.030-1.el7 will be installed
--> Processing Dependency: perl(MIME::Types) >= 1.28 for package: perl-MIME-Lite-3.030-1.el7.noarch
--> Processing Dependency: perl(Email::Date::Format) for package: perl-MIME-Lite-3.030-1.el7.noarch
---> Package perl-Mail-Sender.noarch 0:0.8.23-1.el7 will be installed
--> Processing Dependency: perl(Net::SSLeay) for package: perl-Mail-Sender-0.8.23-1.el7.noarch
--> Processing Dependency: perl(IO::Socket::SSL) for package: perl-Mail-Sender-0.8.23-1.el7.noarch
---> Package perl-Mail-Sendmail.noarch 0:0.79-21.el7 will be installed
---> Package perl-MailTools.noarch 0:2.12-2.el7 will be installed
--> Processing Dependency: perl(Net::SMTP::SSL) for package: perl-MailTools-2.12-2.el7.noarch
--> Processing Dependency: perl(Date::Parse) for package: perl-MailTools-2.12-2.el7.noarch
--> Processing Dependency: perl(Date::Format) for package: perl-MailTools-2.12-2.el7.noarch
---> Package perl-Params-Validate.x86_64 0:1.08-4.el7 will be installed
---> Package perl-Sys-Syslog.x86_64 0:0.33-3.el7 will be installed
--> Running transaction check
---> Package perl-Data-OptList.noarch 0:0.107-9.el7 will be installed
--> Processing Dependency: perl(Sub::Install) >= 0.921 for package: perl-Data-OptList-0.107-9.el7.noarch
--> Processing Dependency: perl(Params::Util) for package: perl-Data-OptList-0.107-9.el7.noarch
---> Package perl-Email-Date-Format.noarch 0:1.002-15.el7 will be installed
---> Package perl-IO-Socket-SSL.noarch 0:1.94-6.el7 will be installed
--> Processing Dependency: perl(IO::Socket::IP) >= 0.20 for package: perl-IO-Socket-SSL-1.94-6.el7.noarch
--> Processing Dependency: perl(Net::LibIDN) for package: perl-IO-Socket-SSL-1.94-6.el7.noarch
---> Package perl-MIME-Types.noarch 0:1.38-2.el7 will be installed
---> Package perl-Module-Implementation.noarch 0:0.06-6.el7 will be installed
---> Package perl-Module-Runtime.noarch 0:0.013-4.el7 will be installed
---> Package perl-Net-SMTP-SSL.noarch 0:1.01-13.el7 will be installed
---> Package perl-Net-SSLeay.x86_64 0:1.55-6.el7 will be installed
---> Package perl-Package-Stash.noarch 0:0.34-2.el7 will be installed
--> Processing Dependency: perl(Package::Stash::XS) >= 0.26 for package: perl-Package-Stash-0.34-2.el7.noarch
--> Processing Dependency: perl(Package::DeprecationManager) for package: perl-Package-Stash-0.34-2.el7.noarch
---> Package perl-TimeDate.noarch 1:2.30-2.el7 will be installed
---> Package perl-Try-Tiny.noarch 0:0.12-2.el7 will be installed
--> Running transaction check
---> Package perl-IO-Socket-IP.noarch 0:0.21-4.el7 will be installed
---> Package perl-Net-LibIDN.x86_64 0:0.12-15.el7 will be installed
---> Package perl-Package-DeprecationManager.noarch 0:0.13-7.el7 will be installed
--> Processing Dependency: perl(List::MoreUtils) for package: perl-Package-DeprecationManager-0.13-7.el7.noarch
---> Package perl-Package-Stash-XS.x86_64 0:0.26-3.el7 will be installed
---> Package perl-Params-Util.x86_64 0:1.07-6.el7 will be installed
---> Package perl-Sub-Install.noarch 0:0.926-6.el7 will be installed
--> Running transaction check
---> Package perl-List-MoreUtils.x86_64 0:0.33-9.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================================
 Package                                                      Arch                                Version                                     Repository                         Size
======================================================================================================================================================================================
Installing:
 perl-Log-Dispatch                                            noarch                              2.41-1.el7.1                                epel                               82 k
 perl-Parallel-ForkManager                                    noarch                              1.18-2.el7                                  epel                               28 k
Installing for dependencies:
 perl-Class-Load                                              noarch                              0.20-3.el7                                  base                               27 k
 perl-Data-OptList                                            noarch                              0.107-9.el7                                 base                               23 k
 perl-Email-Date-Format                                       noarch                              1.002-15.el7                                epel                               17 k
 perl-IO-Socket-IP                                            noarch                              0.21-4.el7                                  base                               35 k
 perl-IO-Socket-SSL                                           noarch                              1.94-6.el7                                  base                              114 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-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

Transaction Summary
======================================================================================================================================================================================
Install  2 Packages (+25 Dependent packages)

Total download size: 1.4 M
Installed size: 3.1 M
Is this ok [y/d/N]: y
Downloading packages:
(1/27): perl-Data-OptList-0.107-9.el7.noarch.rpm                                                                                                               |  23 kB  00:00:00     
(2/27): perl-IO-Socket-SSL-1.94-6.el7.noarch.rpm                                                                                                               | 114 kB  00:00:00     
(3/27): perl-IO-Socket-IP-0.21-4.el7.noarch.rpm                                                                                                                |  35 kB  00:00:00     
(4/27): perl-Class-Load-0.20-3.el7.noarch.rpm                                                                                                                  |  27 kB  00:00:00     
(5/27): perl-List-MoreUtils-0.33-9.el7.x86_64.rpm                                                                                                              |  58 kB  00:00:00     
warning: /var/cache/yum/x86_64/7/epel/packages/perl-Log-Dispatch-2.41-1.el7.1.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY    ] 232 kB/s | 323 kB  00:00:04 ETA 
Public key for perl-Log-Dispatch-2.41-1.el7.1.noarch.rpm is not installed
(6/27): perl-Log-Dispatch-2.41-1.el7.1.noarch.rpm                                                                                                              |  82 kB  00:00:01     
(7/27): perl-Email-Date-Format-1.002-15.el7.noarch.rpm                                                                                                         |  17 kB  00:00:01     
(8/27): perl-Mail-Sendmail-0.79-21.el7.noarch.rpm                                                                                                              |  29 kB  00:00:00     
(9/27): perl-MIME-Types-1.38-2.el7.noarch.rpm                                                                                                                  |  38 kB  00:00:01     
(10/27): perl-MailTools-2.12-2.el7.noarch.rpm                                                                                                                  | 108 kB  00:00:00     
(11/27): perl-Module-Implementation-0.06-6.el7.noarch.rpm                                                                                                      |  17 kB  00:00:00     
(12/27): perl-Net-LibIDN-0.12-15.el7.x86_64.rpm                                                                                                                |  28 kB  00:00:00     
(13/27): perl-Module-Runtime-0.013-4.el7.noarch.rpm                                                                                                            |  19 kB  00:00:00     
(14/27): perl-Net-SMTP-SSL-1.01-13.el7.noarch.rpm                                                                                                              | 9.1 kB  00:00:00     
(15/27): perl-Package-DeprecationManager-0.13-7.el7.noarch.rpm                                                                                                 |  18 kB  00:00:00     
(16/27): perl-Package-Stash-XS-0.26-3.el7.x86_64.rpm                                                                                                           |  31 kB  00:00:00     
(17/27): perl-Package-Stash-0.34-2.el7.noarch.rpm                                                                                                              |  34 kB  00:00:00     
(18/27): perl-Net-SSLeay-1.55-6.el7.x86_64.rpm                                                                                                                 | 285 kB  00:00:00     
(19/27): perl-Params-Util-1.07-6.el7.x86_64.rpm                                                                                                                |  38 kB  00:00:00     
(20/27): perl-Sub-Install-0.926-6.el7.noarch.rpm                                                                                                               |  21 kB  00:00:00     
(21/27): perl-Params-Validate-1.08-4.el7.x86_64.rpm                                                                                                            |  69 kB  00:00:00     
(22/27): perl-Sys-Syslog-0.33-3.el7.x86_64.rpm                                                                                                                 |  42 kB  00:00:00     
(23/27): perl-Parallel-ForkManager-1.18-2.el7.noarch.rpm                                                                                                       |  28 kB  00:00:00     
(24/27): perl-Try-Tiny-0.12-2.el7.noarch.rpm                                                                                                                   |  23 kB  00:00:00     
(25/27): perl-TimeDate-2.30-2.el7.noarch.rpm                                                                                                                   |  52 kB  00:00:00     
(26/27): perl-MIME-Lite-3.030-1.el7.noarch.rpm                                                                                                                 |  96 kB  00:00:04     
(27/27): perl-Mail-Sender-0.8.23-1.el7.noarch.rpm                                                                                                              |  59 kB  00:00:05     
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                 213 kB/s | 1.4 MB  00:00:06     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
 Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"
 Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 Package    : epel-release-7-6.noarch (@/epel-release-7-6.noarch)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : perl-Sub-Install-0.926-6.el7.noarch                                                                                                                               1/27 
  Installing : perl-Net-SSLeay-1.55-6.el7.x86_64                                                                                                                                 2/27 
  Installing : perl-Try-Tiny-0.12-2.el7.noarch                                                                                                                                   3/27 
  Installing : perl-Params-Util-1.07-6.el7.x86_64                                                                                                                                4/27 
  Installing : perl-Module-Runtime-0.013-4.el7.noarch                                                                                                                            5/27 
  Installing : perl-Module-Implementation-0.06-6.el7.noarch                                                                                                                      6/27 
  Installing : perl-Params-Validate-1.08-4.el7.x86_64                                                                                                                            7/27 
  Installing : perl-Data-OptList-0.107-9.el7.noarch                                                                                                                              8/27 
  Installing : perl-Email-Date-Format-1.002-15.el7.noarch                                                                                                                        9/27 
  Installing : perl-Net-LibIDN-0.12-15.el7.x86_64                                                                                                                               10/27 
  Installing : 1:perl-TimeDate-2.30-2.el7.noarch                                                                                                                                11/27 
  Installing : perl-Package-Stash-XS-0.26-3.el7.x86_64                                                                                                                          12/27 
  Installing : perl-MIME-Types-1.38-2.el7.noarch                                                                                                                                13/27 
  Installing : perl-MIME-Lite-3.030-1.el7.noarch                                                                                                                                14/27 
  Installing : perl-List-MoreUtils-0.33-9.el7.x86_64                                                                                                                            15/27 
  Installing : perl-Package-DeprecationManager-0.13-7.el7.noarch                                                                                                                16/27 
  Installing : perl-Package-Stash-0.34-2.el7.noarch                                                                                                                             17/27 
  Installing : perl-Class-Load-0.20-3.el7.noarch                                                                                                                                18/27 
  Installing : perl-Sys-Syslog-0.33-3.el7.x86_64                                                                                                                                19/27 
  Installing : perl-IO-Socket-IP-0.21-4.el7.noarch                                                                                                                              20/27 
  Installing : perl-IO-Socket-SSL-1.94-6.el7.noarch                                                                                                                             21/27 
  Installing : perl-Mail-Sender-0.8.23-1.el7.noarch                                                                                                                             22/27 
  Installing : perl-Net-SMTP-SSL-1.01-13.el7.noarch                                                                                                                             23/27 
  Installing : perl-MailTools-2.12-2.el7.noarch                                                                                                                                 24/27 
  Installing : perl-Mail-Sendmail-0.79-21.el7.noarch                                                                                                                            25/27 
  Installing : perl-Log-Dispatch-2.41-1.el7.1.noarch                                                                                                                            26/27 
  Installing : perl-Parallel-ForkManager-1.18-2.el7.noarch                                                                                                                      27/27 
  Verifying  : perl-IO-Socket-SSL-1.94-6.el7.noarch                                                                                                                              1/27 
  Verifying  : perl-Module-Runtime-0.013-4.el7.noarch                                                                                                                            2/27 
  Verifying  : perl-Mail-Sendmail-0.79-21.el7.noarch                                                                                                                             3/27 
  Verifying  : perl-MIME-Lite-3.030-1.el7.noarch                                                                                                                                 4/27 
  Verifying  : perl-IO-Socket-IP-0.21-4.el7.noarch                                                                                                                               5/27 
  Verifying  : perl-Params-Util-1.07-6.el7.x86_64                                                                                                                                6/27 
  Verifying  : perl-Try-Tiny-0.12-2.el7.noarch                                                                                                                                   7/27 
  Verifying  : perl-Parallel-ForkManager-1.18-2.el7.noarch                                                                                                                       8/27 
  Verifying  : perl-Mail-Sender-0.8.23-1.el7.noarch                                                                                                                              9/27 
  Verifying  : perl-Class-Load-0.20-3.el7.noarch                                                                                                                                10/27 
  Verifying  : perl-Sys-Syslog-0.33-3.el7.x86_64                                                                                                                                11/27 
  Verifying  : perl-List-MoreUtils-0.33-9.el7.x86_64                                                                                                                            12/27 
  Verifying  : perl-Package-DeprecationManager-0.13-7.el7.noarch                                                                                                                13/27 
  Verifying  : perl-MIME-Types-1.38-2.el7.noarch                                                                                                                                14/27 
  Verifying  : perl-Package-Stash-0.34-2.el7.noarch                                                                                                                             15/27 
  Verifying  : perl-Package-Stash-XS-0.26-3.el7.x86_64                                                                                                                          16/27 
  Verifying  : perl-MailTools-2.12-2.el7.noarch                                                                                                                                 17/27 
  Verifying  : perl-Net-SSLeay-1.55-6.el7.x86_64                                                                                                                                18/27 
  Verifying  : perl-Params-Validate-1.08-4.el7.x86_64                                                                                                                           19/27 
  Verifying  : perl-Net-SMTP-SSL-1.01-13.el7.noarch                                                                                                                             20/27 
  Verifying  : perl-Log-Dispatch-2.41-1.el7.1.noarch                                                                                                                            21/27 
  Verifying  : perl-Sub-Install-0.926-6.el7.noarch                                                                                                                              22/27 
  Verifying  : perl-Module-Implementation-0.06-6.el7.noarch                                                                                                                     23/27 
  Verifying  : 1:perl-TimeDate-2.30-2.el7.noarch                                                                                                                                24/27 
  Verifying  : perl-Data-OptList-0.107-9.el7.noarch                                                                                                                             25/27 
  Verifying  : perl-Net-LibIDN-0.12-15.el7.x86_64                                                                                                                               26/27 
  Verifying  : perl-Email-Date-Format-1.002-15.el7.noarch                                                                                                                       27/27 

Installed:
  perl-Log-Dispatch.noarch 0:2.41-1.el7.1                                                perl-Parallel-ForkManager.noarch 0:1.18-2.el7                                               

Dependency Installed:
  perl-Class-Load.noarch 0:0.20-3.el7                    perl-Data-OptList.noarch 0:0.107-9.el7                           perl-Email-Date-Format.noarch 0:1.002-15.el7               
  perl-IO-Socket-IP.noarch 0:0.21-4.el7                  perl-IO-Socket-SSL.noarch 0:1.94-6.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-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                     

Complete!

[root@i-f6wk8ncx software]# yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package perl-DBD-MySQL-4.023-5.el7.x86_64 already installed and latest version
Package perl-Config-Tiny-2.14-7.el7.noarch already installed and latest version
Package perl-Log-Dispatch-2.41-1.el7.1.noarch already installed and latest version
Package perl-Parallel-ForkManager-1.18-2.el7.noarch already installed and latest version
Package 4:perl-Time-HiRes-1.9725-3.el7.x86_64 already installed and latest version
Nothing to do
[root@i-f6wk8ncx software]#

安装perl:

     
[root@i-f6wk8ncx software]# yum install perl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package perl.x86_64 4:5.16.3-285.el7 will be updated
---> Package perl.x86_64 4:5.16.3-292.el7 will be an update
--> Processing Dependency: perl-libs = 4:5.16.3-292.el7 for package: 4:perl-5.16.3-292.el7.x86_64
--> Running transaction check
---> Package perl-libs.x86_64 4:5.16.3-285.el7 will be updated
---> Package perl-libs.x86_64 4:5.16.3-292.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================================
 Package                                     Arch                                     Version                                            Repository                              Size
======================================================================================================================================================================================
Updating:
 perl                                        x86_64                                   4:5.16.3-292.el7                                   base                                   8.0 M
Updating for dependencies:
 perl-libs                                   x86_64                                   4:5.16.3-292.el7                                   base                                   688 k

Transaction Summary
======================================================================================================================================================================================
Upgrade  1 Package (+1 Dependent package)

Total download size: 8.6 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/2): perl-libs-5.16.3-292.el7.x86_64.rpm                                                                                                                     | 688 kB  00:00:01     
(2/2): perl-5.16.3-292.el7.x86_64.rpm                                                                                                                          | 8.0 MB  00:00:12     
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                 693 kB/s | 8.6 MB  00:00:12     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : 4:perl-libs-5.16.3-292.el7.x86_64                                                                                                                                  1/4 
  Updating   : 4:perl-5.16.3-292.el7.x86_64                                                                                                                                       2/4 
  Cleanup    : 4:perl-5.16.3-285.el7.x86_64                                                                                                                                       3/4 
  Cleanup    : 4:perl-libs-5.16.3-285.el7.x86_64                                                                                                                                  4/4 
  Verifying  : 4:perl-libs-5.16.3-292.el7.x86_64                                                                                                                                  1/4 
  Verifying  : 4:perl-5.16.3-292.el7.x86_64                                                                                                                                       2/4 
  Verifying  : 4:perl-libs-5.16.3-285.el7.x86_64                                                                                                                                  3/4 
  Verifying  : 4:perl-5.16.3-285.el7.x86_64                                                                                                                                       4/4 

Updated:
  perl.x86_64 4:5.16.3-292.el7                                                                                                                                                        

Dependency Updated:
  perl-libs.x86_64 4:5.16.3-292.el7                                                                                                                                                   

Complete!
     

     安装Manager:

    先安装node包,再安装manager包。      
[root@i-f6wk8ncx software]# yum localinstall --nogpgcheck  mha4mysql-node-0.56-0.el6.noarch.rpm 
Loaded plugins: fastestmirror
Examining mha4mysql-node-0.56-0.el6.noarch.rpm: mha4mysql-node-0.56-0.el6.noarch
Marking mha4mysql-node-0.56-0.el6.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mha4mysql-node.noarch 0:0.56-0.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================================
 Package                                   Arch                              Version                               Repository                                                    Size
======================================================================================================================================================================================
Installing:
 mha4mysql-node                            noarch                            0.56-0.el6                            /mha4mysql-node-0.56-0.el6.noarch                            102 k

Transaction Summary
======================================================================================================================================================================================
Install  1 Package

Total size: 102 k
Installed size: 102 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mha4mysql-node-0.56-0.el6.noarch                                                                                                                                   1/1 
  Verifying  : mha4mysql-node-0.56-0.el6.noarch                                                                                                                                   1/1 

Installed:
  mha4mysql-node.noarch 0:0.56-0.el6                                                                                                                                                  

Complete!
[root@i-f6wk8ncx software]# yum   localinstall  --nogpgcheck  mha4mysql-manager-0.56-0.el6.noarch.rpm
Loaded plugins: fastestmirror
Examining mha4mysql-manager-0.56-0.el6.noarch.rpm: mha4mysql-manager-0.56-0.el6.noarch
Marking mha4mysql-manager-0.56-0.el6.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mha4mysql-manager.noarch 0:0.56-0.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================================
 Package                                    Arch                            Version                               Repository                                                     Size
======================================================================================================================================================================================
Installing:
 mha4mysql-manager                          noarch                          0.56-0.el6                            /mha4mysql-manager-0.56-0.el6.noarch                          325 k

Transaction Summary
======================================================================================================================================================================================
Install  1 Package

Total size: 325 k
Installed size: 325 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mha4mysql-manager-0.56-0.el6.noarch                                                                                                                                1/1 
  Verifying  : mha4mysql-manager-0.56-0.el6.noarch                                                                                                                                1/1 

Installed:
  mha4mysql-manager.noarch 0:0.56-0.el6                                                                                                                                               

Complete!
[root@i-f6wk8ncx software]#
4:在MySQL服务器节点上安装MHA-Node包

     yum   local install  --nogpgcheck  mha4mysql-node-0.56-0.el6.noarch.rpm

安装完成!

5:MHA配置文件:

创建目录:mkdir -p /etc/masterha/app1.conf
比如:

[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
user=root
#数据库账号MySQL数据库管理账户及密码,因为要执行一些必要的管理命令,比如:Stop Slave、Change Master、#Reset Slave,所以该账户应该为root,这也是缺省值。
password=xxxxxx
#数据库账号密码
ssh_user=root
repl_user=root
repl_password=xxxxxx
ping_interval=1

##在实例crash后   MHA用于切换IP脚本
master_ip_failover_script= /home/mha/script/master_ip_failover
shutdown_script=""
master_ip_online_change_script=""
report_script=""

[server1]
hostname=192.168.60.xxx
port=3333
candidate_master=1
master_binlog_dir="/home/mha/mysql01/5.6.25/data/"

[server2]
hostname=192.168.60.xxx
port=3333
candidate_master=1
master_binlog_dir="/home/mha/mysql01/5.6.25/data/"

[server3]
hostname=192.168.60.xxx
port=3335
#不能成为master
no_master=1
master_binlog_dir="/home/mha/mysql03/5.6.25/data/"

重要参数解释:

     所有参数解析:https://github.com/yoshinorim/mha4mysql-manager/wiki/Parameters#init_conf_load_script

candidate_master=1
在failover时考虑此节点提升为Master.
no_master=1      
在failover时不提升此节点为Master.

用户扩展:

MHA有多个扩展点。 比如MHA可以调用本地脚本来更新主节点IP(更新管理主库IP的全局目录库,更新虚拟IP地址等)。就是为什么要让用户根据自己环境来管理IP地址而不是强制只提供一种方式。
目前的扩展点如下,MHA Manager包包含样本脚本。

secondary_check_script: 多路由检察主节点可用性
master_ip_failover_script: 更新IP
shutdown_script: 用户强制关闭主节点
report_script: 用来发送运行报告信息
init_conf_load_script: 用来加载初始化配置参数
master_ip_online_change_script: 用来更新主节点IP,不用于failover,用于主节点在线切换。

6:服务器SSH免密配置:

               
     略..

7:MySQL Replication 账号配置:

          
     略..

8:MySQL半同步配置:

分别在主从库上进行配置:

主:

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

从:

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

查看插件是否加载成功

有两种方式

1. 

mysql> show plugins;

rpl_semi_sync_master       | ACTIVE   | REPLICATION        | semisync_master.so | GPL


2. 

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS  WHERE PLUGIN_NAME LIKE '%semi%';

+----------------------+---------------+
| PLUGIN_NAME          | PLUGIN_STATUS |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE        |
+----------------------+---------------+
1 row in set (0.00 sec)


 

启动半同步复制

在安装完插件后,半同步复制默认是关闭的,这时需设置参数来开启半同步

主:

mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;

从:

mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;

 

以上的启动方式是在命令行操作,也可写在配置文件中。

主:

plugin-load=rpl_semi_sync_master=semisync_master.so
rpl_semi_sync_master_enabled=1


从:

plugin-load=rpl_semi_sync_slave=semisync_slave.so
rpl_semi_sync_slave_enabled=1


在有的高可用架构下,master和slave需同时启动,以便在切换后能继续使用半同步复制

plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1


 

重启从上的IO线程

mysql> STOP SLAVE IO_THREAD;

mysql> START SLAVE IO_THREAD;

如果没有重启,则默认还是异步复制,重启后,slave会在master上注册为半同步复制的slave角色。

这时候,主的error.log中会打印如下信息:

2016-08-05T10:03:40.104327Z 5 [Note] While initializing dump thread for slave with UUID <ce9aaf22-5af6-11e6-850b-000c2988bad2>, found a zombie dump thread with the same UUID. Master is killing the zombie dump thread(4).
2016-08-05T10:03:40.111175Z 4 [Note] Stop asynchronous binlog_dump to slave (server_id: 2)
2016-08-05T10:03:40.119037Z 5 [Note] Start binlog_dump to master_thread_id(5) slave_server(2), pos(mysql-bin.000003, 621)
2016-08-05T10:03:40.119099Z 5 [Note] Start semi-sync binlog_dump to slave (server_id: 2), pos(mysql-bin.000003, 621)


 

查看半同步是否在运行

主:

mysql> show status like 'Rpl_semi_sync_master_status';

+-----------------------------+-------+
| Variable_name               | Value |
+-----------------------------+-------+
| Rpl_semi_sync_master_status | ON    |
+-----------------------------+-------+
1 row in set (0.00 sec)


从:

mysql> show status like 'Rpl_semi_sync_slave_status';

+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| Rpl_semi_sync_slave_status | ON    |
+----------------------------+-------+
1 row in set (0.20 sec)


这两个变量常用来监控主从是否运行在半同步复制模式下。

9:MySQL my.cnf配置注意事项

[warning]  relay_log_purge=0 is not set on slave 192.168.60.152(192.168.60.152:3317)
从库设置  relay_log_purge=0。使用完的中继日志不自动删除。
 read_only=1 is not set on slave 192.168.70.6(192.168.70.6:3318).
所有库增加配置   read_only=1。MHA会自己根据需要设置是否只读。
    Testing mysql connection and privileges..sh:
mysql: command not found
mysql command failed with rc 127:0!
 at /usr/bin/apply_diff_relay_logs line 375.
        main::check() called at /usr/bin/apply_diff_relay_logs line 497
        eval {...} called at /usr/bin/apply_diff_relay_logs line 475
        main::main() called at /usr/bin/apply_diff_relay_logs line 120
Mon Sep 18 14:01:16 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln205] Slaves settings check failed!
Mon Sep 18 14:01:16 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln413] Slave configuration failed.
Mon Sep 18 14:01:16 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations.  at /usr/bin/masterha_check_repl line 48.
Mon Sep 18 14:01:16 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.
Mon Sep 18 14:01:16 2017 - [info] Got exit code 1 (Not master dead).
拷贝mysql执行文件到目录 /usr/local/bin下
Can't exec "mysqlbinlog": No such file or directory at /usr/share/perl5/vendor_perl/MHA/BinlogManager.pm line 106.
mysqlbinlog version command failed with rc 1:0, please verify PATH, LD_LIBRARY_PATH, and client options
 at /usr/bin/apply_diff_relay_logs line 493.
Mon Sep 18 13:59:17 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln205] Slaves settings check failed!
Mon Sep 18 13:59:17 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln413] Slave configuration failed.
Mon Sep 18 13:59:17 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations.  at /usr/bin/masterha_check_repl line 48.
Mon Sep 18 13:59:17 2017 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.
Mon Sep 18 13:59:17 2017 - [info] Got exit code 1 (Not master dead).
拷贝mysqlbinlog执行文件到目录 /usr/local/bin下
完!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MHA MySQL