MySQL5.7.26 MHA叢集部署操作手冊

dba_sam發表於2021-06-15

說明:
基於CentOS7.6系統安裝
使用MySQL 5.7.26,MHA 0.58版本安裝

1.系統配置

1.關閉防火牆
systemctl stop firewalld.service
systemctl disable firewalld.service
2.關閉SElinux
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
3.設定主機名
 

IP hostname 角色
10.10.10.50 manager MHA manager
10.10.10.51 mysql01 MySQL DB Server - Master, MHA Node
10.10.10.52 mysql02 MySQL DB Server- Slave, MHA Node
10.10.10.53 mysql03 MySQl DB Server - Slave, MHA Node

 

2.配置各節點間SSH互信

ssh-keygen
ssh-copy-id manager
ssh-copy-id mysql01
ssh-copy-id mysql02
ssh-copy-id mysql03

3.安裝MHA Manager

yum -y install epel-release net-tools
yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm
rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

4.安裝MHA Node

yum -y install epel-release net-tools
yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm

5.部署GTID一主二從環境


備庫執行set global read_only=on;不要寫入配置檔案
 
create user root@'%' identified by 'mysql';
grant all on *.* to root@'%';
用於監控

6.配置MHA

mkdir -p /masterha/log
mkdir -p /masterha/tmp
mkdir -p /masterha/mysql
mkdir -p /masterha/app1
touch /masterha/log/app1_manager.log
 
vim /etc/masterha_default.cnf
vim /etc/mha/app1.cnf
vim /masterha/scripts/master_ip_failover
vim /masterha/scripts/master_ip_online_change
vim /masterha/scripts/send_report

檢查配置
masterha_check_ssh --conf=/etc/mha/app1.cnf
masterha_check_repl --conf=/etc/mha/app1.cnf
 

7.啟動MHA

master(mysql01)執行:
ifconfig ens32:1 10.10.10.61/24
 
manager執行:
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /masterha/log/app1_manager.log 2>&1 &

masterha_check_status --conf=/etc/mha/app1.cnf

 

8.線上切換

關閉MHA
masterha_stop --conf=/etc/mha/app1.cnf
 
切換
masterha_master_switch --conf=/etc/mha/app1.cnf --master_state=alive --new_master_host=10.10.10.52 --orig_master_is_new_slave --running_updates_limit=10000 --interactive=0

登入資料庫透過show master status; show slave status;檢查,資料庫角色切換成功
 
重新啟動MHA
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /masterha/log/app1_manager.log 2>&1 &
 

9.failover

模擬主庫故障,殺掉master節點MySQL程式(mysql01)
 
主庫切換至mysql02
VIP漂移至mysql02
/etc/mha/app1.cnf中mysql01的資訊被刪除
mysql03主庫重定向為mysql02

10.恢復踢出節點

關閉MHA:
masterha_stop --conf=/etc/mha/app1.cnf
 
/etc/mha/app1.cnf中恢復mysql01資訊
[server1]
candidate_master=1
hostname=10.10.10.51
port=3306
 
mysql01啟動資料庫並恢復(生產環境根據情況可能需要完全恢復),並加入主從
CHANGE MASTER TO MASTER_HOST ='10.10.10.52',MASTER_PORT =3306,MASTER_USER ='repl',MASTER_PASSWORD ='mysql',MASTER_AUTO_POSITION = 1;
 
重新啟動MHA:
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /masterha/log/app1_manager.log 2>&1 &

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000068/viewspace-2776806/,如需轉載,請註明出處,否則將追究法律責任。

相關文章