Mysql+Keepalived雙主熱備高可用操做記錄html
環境:mysql
ubuntu18.04.2sql
mysql5.7.21ubuntu
1 #1)安裝keepalived並將其配置成系統服務。master1和master2兩臺機器上一樣進行以下操做: 2 apt-get install libssl-dev 3 apt-get install openssl 4 apt-get install libpopt-dev 5 [root@master1 ~]# cd /usr/local/src/ 6 [root@master1 src]# wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz 7 [root@master1 src]# tar -zvxf keepalived-1.3.5.tar.gz 8 [root@master1 src]# cd keepalived-1.3.5 9 [root@master1 keepalived-1.3.5]# ./configure --prefix=/usr/local/keepalived 10 [root@master1 keepalived-1.3.5]# make && make install 11 mkdir /etc/sysconfig 12 cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ 13 cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ 14 cp /usr/local/keepalived/sbin/keepalived /sbin/ 15 mkdir /etc/keepalived 16 cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
實現高可用以前確保本身的mysql已是主備或者互爲主備了,mysql互爲主備操做請看我上篇文章: https://www.cnblogs.com/-admin-/p/11654318.htmlbash
本次設置的ip:
vip:192.168.85.142
01:192.168.85.140
02:192.168.85.141服務器
請各位按照本身的需求更改相應ip
spa
#01的keepalived.conf配置 ! Configuration File for keepalived global_defs { notification_email { 759571872@qq.com #報警郵件接收人的地址 } notification_email_from 759571872@qq.com smtp_server 127.0.0.1 smtp_connect_timeout 30 ubuntu001 } vrrp_script chk_mysql_port { #檢測mysql服務是否在運行。有不少方式,好比進程,用腳本檢測等等 script "/opt/chk_mysql.sh" #這裏經過腳本監測 interval 2 #腳本執行間隔,每2s檢測一次 weight -5 #腳本結果致使的優先級變動,檢測失敗(腳本返回非0)則優先級 -5 fall 2 #檢測連續2次失敗纔算肯定是真失敗。會用weight減小優先級(1-255之間) rise 1 #檢測1次成功就算成功。但不修改優先級 } vrrp_instance VI_1 { state MASTER interface ens33 #指定虛擬ip的網卡接口 mcast_src_ip 192.168.85.140 virtual_router_id 51 #路由器標識,MASTER和BACKUP必須是一致的 priority 101 #定義優先級,數字越大,優先級越高,在同一個vrrp_instance下,MASTER的優先級必須大於BACKUP的優先級。這樣MASTER故障恢復後,就能夠將VIP資源再次搶回來 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.85.142 } track_script { chk_mysql_port } }
01服務器配置完畢.code
接下來配置02服務器:router
#02的keepalived.conf配置 ! Configuration File for keepalived global_defs { notification_email { 759571872@qq.com #報警郵件接收人的地址 } notification_email_from 759571872@qq.com smtp_server 127.0.0.1 smtp_connect_timeout 30 ubuntu002 } vrrp_script chk_mysql_port { #檢測mysql服務是否在運行。有不少方式,好比進程,用腳本檢測等等 script "/opt/chk_mysql.sh" #這裏經過腳本監測 interval 2 #腳本執行間隔,每2s檢測一次 weight -5 #腳本結果致使的優先級變動,檢測失敗(腳本返回非0)則優先級 -5 fall 2 #檢測連續2次失敗纔算肯定是真失敗。會用weight減小優先級(1-255之間) rise 1 #檢測1次成功就算成功。但不修改優先級 } vrrp_instance VI_1 { state BACKUP interface ens33 #指定虛擬ip的網卡接口 mcast_src_ip 192.168.85.141 virtual_router_id 51 #路由器標識,MASTER和BACKUP必須是一致的 priority 99 #定義優先級,數字越大,優先級越高,在同一個vrrp_instance下,MASTER的優先級必須大於BACKUP的優先級。這樣MASTER故障恢復後,就能夠將VIP資源再次搶回來 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.85.142 } track_script { chk_mysql_port } }
編寫腳本:server
#vi /opt/chk_mysql.sh #!/bin/bash counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l) if [ "${counter}" -eq 0 ]; then /etc/init.d/keepalived stop fi
至此,Mysql+Keepalived雙主熱備高可用已經配置完畢.
原文出處:https://www.cnblogs.com/-admin-/p/11683318.html