您好,登錄后才能下訂單哦!
mysql主主復制及keepalived高可用
Keepalived+mysql雙主來實現MySQL-HA,我們必須保證兩臺MySQL數據庫的數據完全一樣,基本思路是兩臺MySQL互為主從關系(雙主),通過Keepalived配置虛擬IP,實現當其中的一臺MySQL數據庫宕機后,應用能夠自動切換到另外一臺MySQL數據庫,保證系統(tǒng)的高可用。
實驗基本拓撲:
主主同步就是兩臺機器互為主從的關系,在任何一臺機器上寫入都會同步.
在master1 mysql主配置文件中添加下面參數(/etc/my.cnf)
在master2 mysql主配置文件中添加下面參數
停止防火墻服務(主主復制得經過防火墻,防火墻會阻止,可以添加策略)
在master1上創(chuàng)建授權用戶
查看binlog狀態(tài)信息
在master2上設置為從服務器
查看下面兩個值是否為yes,yes表示能夠同步
在master2中添加授權用戶
在master2上查看binllog狀態(tài)信息
在master1中設置為從服務器
查看一下兩個參數是否為yes
以上為master1為master2的主,master2是master1的主并肩為主從,所以他們并肩為對方的主
創(chuàng)建數據庫、表、插入數據,測試對方是否能同步
在第二臺mysql服務器查看是否同步
通過上面的查看,mysql主主復制沒毛病,非常完美(上面表中id加一跟配置文件中的自動增長有關,可以注釋掉后重啟)
使用keepalived實現高可用
keepalived安裝配置
安裝keepalived下圖的依賴包
tar包編譯安裝keepalived
上面的編譯安裝必須在兩臺上都安裝(centos7上使用上面的方法,如果是6.x后面需要make前面添加--with-kernel-dir=內核文件的位置)
修改keepalived配置文件(主機一的)
! Configuration File for keepalived \注釋信息
global_defs {
router_id mysql-1
}
vrrp_instance VI_1 {
state BACKUP
interface eno16777736
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.119.100
}
}
virtual_server 192.168.119.100 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.119.132 3306 {
weight 1
notify_down /etc/keepalived/bin/mysql.sh
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
配置主機二的配置文件(需要修改幾個地方)
在兩臺服務器上編寫一個腳本,就在keepalived配置文件指定的地方創(chuàng)建notify_down
并且授予X權限
啟動keepalived服務
兩邊都得啟動
查看master1群集虛擬ip地址
查看master2群集IP有沒有
可以看到當主機1運行時主機2不會有虛擬ip的
測試我們的主機宕機了,看會不會虛擬ip變
查看主機2的
可以得知當主機1宕掉之后keepalived服務會自動把虛擬ip切換到主機2上,原因在與我們在keepalived配置文件中優(yōu)先級的設置
我們測試一下使用客戶端訪問主機
在兩臺服務器上添加登錄的授權用戶
從下圖可以看到都可以連接數據庫
我們把master1宕掉,看看虛擬ip能否連接,當點擊數據庫master1查看表時,已經不能連接了
查看虛擬ip的數據庫是否能查看
從上圖得知虛擬ip自動切換了,而且不影響訪問
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。