溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2020-07-27 18:33:24 來源:網絡 閱讀:13609 作者:攀巖人生 欄目:建站服務器

                mysql主主復制及keepalived高可用

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

實驗基本拓撲:

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

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

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

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

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

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

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

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

master1上創(chuàng)建授權用戶

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

查看binlog狀態(tài)信息

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

master2上設置為從服務器

 

 

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

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

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

master2中添加授權用戶

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

master2上查看binllog狀態(tài)信息

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

master1中設置為從服務器

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

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

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

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

創(chuàng)建數據庫、表、插入數據,測試對方是否能同步

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

在第二臺mysql服務器查看是否同步

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

通過上面的查看,mysql主主復制沒毛病,非常完美(上面表中id加一跟配置文件中的自動增長有關,可以注釋掉后重啟)

使用keepalived實現高可用

keepalived安裝配置

安裝keepalived下圖的依賴包

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

tar包編譯安裝keepalived

mysql主主復制及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

}   

}   

}   

配置主機二的配置文件(需要修改幾個地方)

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

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

在兩臺服務器上編寫一個腳本,就在keepalived配置文件指定的地方創(chuàng)建notify_down

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

并且授予X權限

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

啟動keepalived服務

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

兩邊都得啟動

查看master1群集虛擬ip地址

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

查看master2群集IP有沒有

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

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

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

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

查看主機2

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

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

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

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

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

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

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

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

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

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

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

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

 


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI