1.准备工作
安装基础依赖包在所有机器上面执行,以后都不在博客里面写$符号了,和Redis官方学的,写的我好累
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum makecache yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-ParallelForkManager perl-Config-IniFiles ncftp perl-Params-Validate perl-CPAN perl-TestMock-LWP.noarch perl-LWP-Authen-Negotiate.noarch perl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-YAML-Tiny perl-PAR-Dist perl-Module-ScanDeps perl-Module-CoreList perl-Module-Build perl-CPAN perl-CPANPLUS perl-File-Remove perl-Module-Install |
首先配置安装MHA NODE 和 MHA Manager
为了和mysql master做区分,我的manager安装到130机器,还记得在上一篇文章中 /home/local/mysql里面的安装包吗,如果找不到执行如下命令获取
cd /home/local/mysql wget https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58.tar.gz wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58.tar.gz
下载好了先别急着配置manager,所有节点都需要安装mha4mysql-node,所以我们先装node
给你们偷个懒,有更好的方法请留言 tar -zxvf /home/local/mysql/mha4mysql-node-0.58.tar.gz -C /home/local/mysql/mha4mysql-node-0.58/ –strip-components 1 & cd /home/local/mysql/mha4mysql-node-0.58/ //卡住敲回车 |
2.安装配置mha manager
去130上面操作,我把130选做manager节点
# 创建MHA配置文件目录
mkdir -p /etc/mha/scripts
# 创建MHA日志目录
mkdir -p /var/log/mha/app1
执行如下命令安装manager,这里区别一下node的安装,直接进入目录解压安装,看各位大神自己的爱好
cd /home/local/mysql/ tar -zxvf mha4mysql-manager-0.58.tar.gz cd mha4mysql-manager-0.58/ perl Makefile.PL make && make install 拷贝manager/scripts文件下的文件/etc/mha/scripts下,下面的文件要用 cp samples/scripts/* /etc/mha/scripts/ 当然你可以看看默认的配置文件,也可以直接用我下面的进行修改,默认的配置文件在manager安装目录下的samples/conf/中
开始配置文件manager管理节点
vim /etc/masterha_default.cnf
[server default] manager_log=/var/log/mha/app1/manager.log manager_workdir=/var/log/mha/app1.log master_binlog_dir=/usr/local/mysql/data/ master_ip_failover_script=/etc/mha/scripts/master_ip_failover master_ip_online_change_script=/etc/mha/scripts/master_ip_online_change report_script = /etc/mha/scripts/send_report ping_interval=1 remote_workdir=/tmp repl_user=repl repl_password=Root2020@ report_script=/etc/mha/scripts/send_report #监控的是非主节点 secondary_check_script=/usr/local/bin/masterha_secondary_check -s 172.168.9.142 -s 172.168.9.143 shutdown_script="" ssh_user=root user=manager password=Root2020@
vim /etc/mha/app1.cnf
[server1] [server2] [server3] |
MHA主要配置文件说明
- manager_workdir=/var/log/masterha/app1.log:设置manager的工作目录
- manager_log=/var/log/masterha/app1/manager.log:设置manager的日志文件
- master_binlog_dir=/data/mysql:设置master 保存binlog的位置,以便MHA可以找到master的日志
- master_ip_failover_script= /usr/local/bin/master_ip_failover:设置自动failover时候的切换脚本
- master_ip_online_change_script= /usr/local/bin/master_ip_online_change:设置手动切换时候的切换脚本
- user=root:设置监控mysql的用户
- password=dayi123:设置监控mysql的用户,需要授权能够在manager节点远程登录
- ping_interval=1:设置监控主库,发送ping包的时间间隔,默认是3秒,尝试三次没有回应的时候自动进行railover
- remote_workdir=/tmp:设置远端mysql在发生切换时binlog的保存位置
- repl_user=repl :设置mysql中用于复制的用户密码
- repl_password=replication:设置mysql中用于复制的用户
- report_script=/usr/local/send_report:设置发生切换后发送的报警的脚本
- shutdown_script=””:设置故障发生后关闭故障主机脚本(该脚本的主要作用是关闭主机放在发生脑裂,这里没有使用)
- ssh_user=root //设置ssh的登录用户名
- candidate_master=1:在节点下设置,设置当前节点为候选的master
- slave check_repl_delay=0 :在节点配置下设置,默认情况下如果一个slave落后master 100M的relay logs的话,MHA将不会选择该slave作为一个新的master;这个选项对于对于设置了candidate_master=1的主机非常有用
3.验证MHA相关配置
未完,这么简单怎么用,继续看三