The use of manager in linux
1. Write this script on the manager node
[root@manager scripts] # cat / scripts/master_ip_failover #! / usr/bin/env perluse 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.20.100mm; # here specify the VIP address my $key ='0' My $ssh_start_vip = "/ sbin/ifconfig ens33:$key $vip"; # this instruction is to start VIPmy $ssh_stop_vip = "/ sbin/ifconfig ens33:$key down" # this instruction is to stop VIPGetOptions ('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"; 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 "; # `ssh $ssh_user\ @ cluster1\" $ssh_start_vip\ "`; exit 0;} else {& usage (); exit 1;}} # A simple system call that enable the VIP on the new mastersub start_vip () {`ssh $ssh_user\ @ $new_master_host\" $ssh_start_vip\ "`;} # A simple system call that disable the VIP on the old_mastersub stop_vip () {return 0 unless ($ssh_user) `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" } [root@manager ~] # ll / scripts/master_ip_failover # needs to ensure that the script has executable permissions-rwxr-xr-x 1 root root February 24 16:32 / scripts/master_ip_failover2, Modify the manager configuration file [root@manager ~] # cat / etc/masterha/app1.cnf # configuration file specify the location of the script [server default] manager_workdir=/var/log/masterha/app1manager_log=/var/log/masterha/app1/manager.loguser=managerpassword=123.comssh_user=rootrepl_user=mhareprepl_password=123.comping_interval=1master_ip_failover_script=/scripts/master_ip_failover # add line change Specify the location of the script. [server1] hostname=192.168.20.2port=3306master_binlog_dir=/usr/local/mysql/datacandidate_master= 1[server2] hostname=192.168.20.3port=3306master_binlog_dir=/usr/local/mysql/datacandidate_master= 1[server3] hostname=192.168.20.4port=3306master_binlog_dir=/usr/local/mysql/datano_master=1
By doing this, you can ensure that when you switch master, the VIP address will be switched to the new master host.