相关文章:
mysql主从加MHA+keepalived部署(一)——mysql安装:
https://blog.csdn.net/royzhang7/article/details/100031462
mysql主从加MHA+keepalived部署(二)——mysql主从配置:
https://blog.csdn.net/royzhang7/article/details/100031462
mysql主从加MHA+keepalived部署(四) —— keepalived部署安装:
https://blog.csdn.net/royzhang7/article/details/100031832
--环境redhat7.5
--mha-master 192.168.3.4
--mha-node 192.168.3.4 192.169.3.3
目前只有两台虚机,故master节点装在了mysql的slave端,最好单独一台服务器
--配置ssh互信
--192.68.3.3
cd /root/.ssh
ssh-keygen -t rsa #全回车默认值
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
ssh-copy-id -i id_rsa.pub 192.168.3.3
ssh-copy-id -i id_rsa.pub 192.168.3.4
--192.168.3.4
cd /root/.ssh
ssh-keygen -t rsa #全回车默认值
ssh-copy-id -i id_rsa.pub 192.168.3.3
ssh-copy-id -i id_rsa.pub 192.168.3.4
--在3.3和3.4安装依赖包,从光盘源安装即可
yum install perl-DBD-MySQL
yum install perl-ExtUtils-CBuilder
yum install perl-CPAN
--在两个node节点安装node包
tar xzvf mha4mysql-node-0.58.tar.gz
cd mha4mysql-node-0.58
perl Makefile.PL
make && make install
--在master节点安装依赖包,从光盘源
yum install perl-Class-Load
yum install perl-IO-Socket-SSL
yum install perl-MailTools
yum install perl-Params-Validate
yum install perl-Sys-Syslog
--在master节点3.4安装依赖包,需自行下载,手动安装
rpm -ivh perl-Config-Tiny-2.14-7.el7.noarch.rpm
rpm -ivh perl-Email-Date-Format-1.002-15.el7.noarch.rpm
rpm -ivh perl-MIME-Types-1.38-2.el7.noarch.rpm
rpm -ivh perl-MIME-Lite-3.030-1.el7.noarch.rpm
rpm -ivh perl-Mail-Sender-0.8.23-1.el7.noarch.rpm
rpm -ivh perl-Mail-Sendmail-0.79-21.el7.noarch.rpm
rpm -ivh perl-Log-Dispatch-2.41-1.el7.1.noarch.rpm
rpm -ivh perl-Parallel-ForkManager-1.18-2.el7.noarch.rpm
--在master安装管理节点
tar xzvf mha4mysql-manager-0.58.tar.gz
cd mha4mysql-manager-0.58
perl Makefile.PL
make && make install
--配置mha
--在管理节点,3.4上,将mysql slave设置为只读
set global read_only=1;
--在两个node上配置mysql用户
grant all on *.* to 'root'@'192.168.3.%' identified by 'mysql';
flush privileges;
--在管理节点配置mha脚本
mkdir -p /usr/local/mha
cd /usr/local/mha
vi mha.conf
[server default]
manager_workdir=/usr/local/mha
manager_log=/usr/local/mha/manager.log
remote_workdir=/usr/local/mha
user = root
password = mysql
ssh_user = root
repl_user = repl
repl_password = repl
ping_interval = 1
#master_ip_failover_script="/usr/local/bin/master_ip_failover"
master_ip_online_change_script=""
shutdown_script=""
report_script=""
[server1]
hostname=192.168.3.3
port=3306
master_binlog_dir="/data/mysql/log"
candidate_master=1
[server2]
hostname=192.168.3.4
port=3306
master_binlog_dir="/data/mysql/log"
candidate_master=1
--测试ssh连接
masterha_check_ssh --conf=/usr/local/mha/mha.conf
--测试主从复制
masterha_check_repl --conf=/usr/local/mha/mha.conf
--启动mha
masterha_manager --conf=/usr/local/mha/mha.conf &
--关闭主库,观察failover过程
--192.168.3.3 systemctl stop mysqld
tail -f /usr/local/mha/manager.log
----- Failover Report -----
mha: MySQL Master failover 192.168.3.3(192.168.3.3:3306) to 192.168.3.4(192.168.3.4:3306) succeeded
Master 192.168.3.3(192.168.3.3:3306) is down!
Check MHA Manager logs at zhangry-test2:/usr/local/mha/manager.log for details.
Started automated(non-interactive) failover.
Selected 192.168.3.4(192.168.3.4:3306) as a new master.
192.168.3.4(192.168.3.4:3306): OK: Applying all logs succeeded.
192.168.3.4(192.168.3.4:3306): Resetting slave info succeeded.
Master failover to 192.168.3.4(192.168.3.4:3306) completed successfully.
--恢复主库,还原至原环境
--192.168.3.3
systemctl start mysqld
change master to master_host='192.168.3.4', master_user='repl',master_password='repl',master_port=3306,master_auto_position=1;
start slave;
show slave status\G
--切换主从
masterha_master_switch --master_state=alive --conf=/usr/local/mha/mha.conf --new_master_host=192.168.3.3
change master to master_host='192.168.3.3', master_user='repl',master_password='repl',master_port=3306,master_auto_position=1;
start slave;
show slave status\G
--mha状态查看,failover过后mha会停掉
masterha_check_status --conf=/usr/local/mha/mha.conf
--重新启动mha
masterha_manager --conf=/usr/local/mha/mha.conf &
--下面配置keepalived