目录
一.准备环境:
1.首先我们准备四台主机,mgt,mastar,slave1,slave2.(一个mgt,一主两从)。
2.四台 主机能实现两两ssh免密登陆;例:
3.除mgt外,其余三台安装mariadb数据库 例:
二.主从复制:
vim MySQL配置文件(/etc/my.cnf)修改如下
1.master:
slave1:
slave2: (两个从服务器的id不能重复)
2.三个安装mariadb的主机,都可以作为主也都可以作为从;
marster:
slave1:
slave2:
三.MHA安装
1.所有主机先安装eprl源和依赖
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
2.所有主机解包,编译,安装
tar xf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57
perl Makefile.PL && make && make install
3.mgt解包,编译,安装,其余三台不安装
tar xf mha4mysql-manager-0.57.tar.gz
cd /root/mha4mysql-manager-0.57
perl Makefile.PL && make && make install
4.复制脚本:
cp sample/scripts/master_ip_failover /usr/local/bin/
cp sample/scripts/master_ip_online_change /usr/local/bin/
5.脚本说明:
master_ip_failover 自动切换时 VIP 管理的脚本
master_ip_online_change 在线切换时 vip 的管理
power_manager 故障发生后关闭主机的脚本
send_report 因故障切换后发送报警的脚本
6.在master_ip_failover内写入:
#############################添加内容部分#####################################
my $vip = '192.168.115.200'; #指定vip的地址
my $brdc = '192.168.115.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";
#############################################################################
7.mkdir /etc/masterha;填入:vim /etc/masterha/app1.cnf
[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
ping_interval=1
remote_workdir=/tmp
repl_password=123
repl_user=myslave
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.115.131 -s 192.168.115.132
shutdown_script=""
ssh_user=root
user=mha
[server1]
hostname=192.168.115.130
port=3306
[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.115.131
port=3306
[server3]
hostname=192.168.115.132
port=3306
四.测试MHA:
1.masterha_check_ssh--conf=/etc/masterha/app1.cnf
2. masterha_check_repl --conf=/etc/masterha/app1.cnf
显示 :MySQL Replication health is OK.
五.启动命令: