登录
  • 欢迎访问悠扬的技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站😉

Mysql高可用集群搭建(二) MHA

Mysql 悠扬 706次浏览 已收录

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  :idea: 

给你们偷个懒,有更好的方法请留言
mkdir -p /home/local/mysql/mha4mysql-node-0.58

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/

//卡住敲回车
perl Makefile.PL
make && make install

2.安装配置mha manager

去130上面操作,我把130选做manager节点
# 创建MHA配置文件目录 
mkdir -p /etc/mha/scripts
# 创建MHA日志目录
mkdir -p /var/log/mha/app1 

执行如下命令安装manager,这里区别一下node的安装,直接进入目录解压安装,看各位大神自己的爱好 :D 

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]
hostname=192.168.32.128
port=3306
candidate_master=1

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

[server3]
hostname=192.168.32.130
port=3306

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相关配置

Mysql高可用集群搭建(二) MHA此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“微信验证码”,获取验证码。在微信里搜索“攻城狮悠扬”或者“gcs_lm_1688”或者微信扫描右侧二维码都可以关注本站微信公众号。

未完,这么简单怎么用,继续看三


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Mysql高可用集群搭建(二) MHA
喜欢 (1)
支付宝[]
分享 (0)
悠扬
关于作者:
10年以上工作经验:6年以上微服务架构设计搭建经验。 曾任岗位:项目经理、架构师。 擅长领域:大数据、数据库,架构设计,资源优化。 获得业绩: 1.实用新型发明专利1个,修改Apache Sharding源码设计实现分库分表程序增强方案。 2.开源项目一个:https://gitee.com/zsiyang/ruoyi-vue-atomikos (加入开源生态圈)。 3.个人技术博客地址:https://www.nxhz1688.com