系统环境:CentOS 6.5 X64
MHA软件版本:
mha4mysql-manager-0.56.tar.gz
mha4mysql-node-0.56.tar.gz
MySQL版本:
Percona-Server-5.6.22-rel71.0-726.Linux.x86_64.tar.gz
前提条件,主从架构(2.8.19支持一主一从架构,本文不涉及主从架构的搭建)
(本配置在每个DB节点上进行操作)
yum -y install perl-ExtUtils-MakeMakerperl-ExtUtils-CBuilder perl-CPAN perl-DBI perl-DBD-MySQL
perl Makefile.PL
make && make install
manager若独立部署在单独服务器则同样需要安装node,并且先安装node之后在安装manager
yum -y install perl-Time-HiResperl-Config-Tiny
cpan -i Parallel::ForkManager #中间需要交互操作输入yes(需要解决如何进行非交互方式安装,以便自动安装)
cpan -i Log::Dispatch
# mkdir /etc/masterha
# mkdir -p /masterha/app1
# cp samples/conf/* /etc/masterha/
# cat /etc/masterha/app1.cnf
[server default]
manager_workdir=/masterha/app1
manager_log=/masterha/app1/manager.log
user=mha
password=123456
ssh_user=root
repl_user=repl
repl_password=654321
ping_interval=1
[server1]
hostname=172.16.52.130
candidate_master=1 #设置提升级别,若每个都为1,则按照配置顺序进行故障转移主库的提升
master_binlog_dir="/usr/local/mysql/data" #为主库的binlog的存放路径
[server2]
hostname=172.16.52.131
candidate_master=1
master_binlog_dir="/usr/local/mysql/data"
[server3]
hostname=172.16.52.132
candidate_master=1
master_binlog_dir="/usr/local/mysql/data”
说明:
1)master_binlog_dir为主库对应的binlog日志存放路径
配置manager和node的各个ssh相互之间无密码登陆,每个DB都需配置
ssh-keygen
ssh-copy-id -i IP
对每个DB进行授权,(各个节点包括manager均需配置)
grant all on *.* tomha@'172.16.52.%' identified by '123456';
flush privileges;
为保障后续的快速切换,同样在每个DB上进行复制用户授权:
GRANT REPLICATION SLAVE ON *.* TO'repl'@'172.16.52.%' IDENTIFIED BY '654321';
flush privileges;
masterha_check_ssh --conf=/etc/masterha/app1.cnf
masterha_check_repl --conf=/etc/masterha/app1.cnf
启动管理节点进程
nohup masterha_manager --conf=/etc/masterha/app1.cnf--ignore_last_failover &>/dev/null &
关闭管理节点进程
masterha_stop �Cconf=/etc/masterha/app1.cnf
tail-f /masterha/app1/manager.log
通过日志过滤,进行故障主库快速切换从库。
grep �Ci “change” /masterha/app 1/manager.log #以最后一条change master为准
MHA每次故障转移后,进程都会停止,需要手动进行重新启动该进程,若当掉的主库没有进行从库切换,重新复制新主库,则需要更改manager的配置文件,进行进程重新启动,否则不用。