1. 程式人生 > >mysql主主復制及keepalived高可用群集

mysql主主復制及keepalived高可用群集

高可用 mysql mysql存儲

mysql主主復制及keepalived高可用

Keepalived+mysql雙主來實現MySQL-HA,我們必須保證兩臺MySQL數據庫的數據完全一樣,基本思路兩臺MySQL互為主從關系(雙主),通過Keepalived配置虛擬IP,實現當其中的一臺MySQL數據庫宕機後,應用能夠自動切換到另外一臺MySQL數據庫,保證系統的高可用

實驗基本拓撲:

技術分享

主主同步就是兩臺機器互為主的關系,在任何一臺機器上寫入都會同步.

master1 mysql主配置文件中添加下面參數(/etc/my.cnf

技術分享

master2 mysql主配置文件中添加下面參數

技術分享

停止防火墻服務(主主復制得經過防火墻,防火墻會阻止,可以添加策略)

技術分享

master1上創建授權用戶

技術分享

查看binlog狀態信息

技術分享

master2上設置為從服務器

技術分享

查看下面兩個值是否為yesyes表示能夠同步

技術分享

master2中添加授權用戶

技術分享

master2上查看binllog狀態信息

技術分享

master1中設置為從服務器

技術分享

查看一下兩個參數是否為yes

技術分享

以上為master1master2的主,master2master1的主並肩為主從,所以他們並肩為對方的主

創建數據庫、表、插入數據,測試對方是否能同步

技術分享

在第二臺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配置文件指定的地方創建notify_down

技術分享

並且授予X權限

技術分享

啟動keepalived服務

技術分享

兩邊都得啟動

查看master1群集虛擬ip地址

技術分享

查看master2群集IP有沒有

技術分享

可以看到當主機1運行時主機2不會有虛擬ip

測試我們的主機宕機了,看會不會虛擬ip

技術分享

查看主機2

技術分享

可以得知當主機1宕掉之後keepalived服務會自動把虛擬ip切換到主機2上,原因在與我們在keepalived配置文件中優先級的設置

我們測試一下使用客戶端訪問主機

在兩臺服務器上添加登錄的授權用戶

技術分享

從下圖可以看到都可以連接數據庫

技術分享

我們把master1宕掉,看看虛擬ip能否連接,當點擊數據庫master1查看表時,已經不能連接了

技術分享

查看虛擬ip的數據庫是否能查看

技術分享

從上圖得知虛擬ip自動切換了,而且不影響訪問


本文出自 “centos7” 博客,請務必保留此出處http://12832314.blog.51cto.com/12822314/1945142

mysql主主復制及keepalived高可用群集