#mysql mha佈署
1. ip規劃
1主2從,1個mha監控,1個mycat ,1個虛擬IP地址(再預留1個)
2.安裝依賴包
#先安裝yum擴展包
RHEL/CentOS 7 64 Bit
## RHEL/CentOS 7 64-Bit ##下邊這個鏈接不上
# wget http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
# rpm -ivh epel-release-7-0.2.noarch.rpm
centos7擴展源:
RHEL/CentOS 7:
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#管理監控節點:
yum -y install perl-Config-Tiny.noarch perl-Time-HiRes.x86_64 \
perl-Parallel-ForkManager perl-Log-Dispatch-Perl.noarch perl-DBD-MySQL ncftp
yum install perl-Log-Dispatch-Perl ==>yum install perl-Log-Dispatch 解決?
#數據庫節點(1主2從)
yum -y install perl-DBD-MySQL ncftp perl-DBI #node包運行需要
yum -y install libaio* #mysql運行依賴庫文件
#mycat需要安裝jdk8的環境 和其它環境配置
3.#創建ssh互信協議,4臺機器上執行
ssh-keygen
ssh-copy-id -i root@ip地址
4.佈署1主多從的環境mysql數據庫(3個數據庫機器上執行)
轉數據庫操作
#無法做主從同步時要留意 防火牆有無關閉:systemctl stop firewalld
5.安裝node安裝包(除mycat外的4臺主機)
mha4mysql-node-0.57-0.57-0.3l7.noarch.rpm
rpm -ivh xxx
6.mha監控主機配置佈署
#安裝manager安裝包(mha監控主機)
rpm -ivh xxx
mkdir -p /etc/mha
mkdir -p /home/mysql_mha/
#配置
#/etc/mha/mysql_mha.cnf
[server default]
user=mha
password=123456
manager_workdir=/home/mysql_mha
manager_log=/home/mysql_mha/manager.log
remote_workdir=/home/mysql_mha
ssh_user=root
repl_user=repl
repl_password=123456
ping_interval=1
master_binlog_dir=/application/mysql56/data
master_ip_failover_script=/usr/bin/mha_master_ip_failover
secondary_check_script=/usr/bin/masterha_secondary_check -s ip1 -s ip2 -s ip3
[server1]
hostname=ip1
candidate_master=1
[server2]
hostname=ip2
candidate_master=1
[server3]
hostname=ip3
no_master=1
#chmod 755
chmod 755 /usr/bin/mha_master_ip_failover
#一主二從上的此配置文件將此行註釋,否則vip切換時會因爲報錯而無法切換
/etc/sudoers
Defaults requiretty #註釋掉表示不需要控制終端。
#配置虛擬IP,要留意下實際用到的ethxxx
ifconfig enp0s3:1 xxx/24
#將mysql的bin目錄變量加入到/etc/profile文件中
或者通過類似下邊操作添加到:
ln -s /application/mysql56/bin/mysqlbinlog /usr/bin/mysqlbinlog
ln -s /application/mysql56/bin/mysql /usr/bin/mysql
#環境配置驗證
masterha_check_ssh --conf=/etc/mha/mysql_mha.cnf
masterha_check_repl --conf=/etc/mha/mysql_mha.cnf
#驗證通過後
#mha啓動運行
nohup masterha_manager --conf=/etc/mha/mysql_mha.cnf &
#高可用驗證
1. 主庫down後,從庫是否自動連到備用的主庫上
2. 將原來的down掉的主庫修復問題後根據日誌重連到新的主庫上作爲新的從庫
grep -i "All other slaves should start replication from here" /home/mysql_mha/manager.log
#注意事項:
1.每次故障後會停止,如果切換成功,重新開啓manager服務時要刪除mysql_mha.failover.complete文件,否則後續故障轉移時會報錯
2.vip無法切換時要留意此文件/etc/sudoers