利用Keepalived構建MySQL主主複製

來源:互聯網
上載者:User

利用Keepalived構建MySQL主主複製

概述:

MySQL-HA有很多的實現方案,比較常見的是master+keepalived來實現MySQL-HA,來進行實現;兩台MySQL互為主從關係,通過Keepalived配置虛擬IP,實現當其中的一台MySQL資料庫宕機後,應用能夠自動切換到另外一台MySQL資料庫,保證系統的高可用;在實際的生產環境中,也是通過這個方案來部署的,相信應該有值得借鑒的地方;

2.環境說明

搭建MySQL的主主複製步驟(請看連結  )

主機名稱

IP地址

虛擬ip(VIP)

Mysql01

192.168.47.149

192.168.47.140

Mysql02

192.168.47.148

192.168.47.140

兩台資料庫上面設定相應的host檔案

vim /etc/hosts
127.0.0.1 Mysql01
localhost Mysql01
192.168.47.149 Mysql01
192.168.47.148 Mysql02

Keepalived的安裝

3.1 #yum install keepalived –y

3.2 Mysql01進行參數檔案的修改

cat /etc/keepalived/keepalived.conf

#! Configuration File for keepalived

global_defs {

router_id Mysql01 #修改為自己的主機名稱

}

##################第一部分###################

vrrp_instance VI_1 {

state BACKUP            #都修改成BACKUP

interface eth0

virtual_router_id 60    #預設51 主從都修改為60

priority 100            #優先順序(1-254之間),另一台改為90,備用節點必須比主節點優先順序低。

advert_int 1

nopreempt                #不搶佔資源,意思就是它活了之後也不會再把主搶回來

authentication {

#設定驗證資訊,兩個節點必須一致

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

    192.168.47.140

}

}

##################第二部分###################

virtual_server 192.168.47.140 3306 {

delay_loop 6

lb_algo wrr            #LVS演算法

lb_kind DR                #LVS模式

nat_mask 255.255.255.0

persistence_timeout 50 #會話保持時間

protocol TCP

real_server 192.168.47.149 3306 {

weight 1

notify_down /usr/local/script/mysql.sh #檢測到服務down後執行的指令碼

TCP_CHECK {

connect_timeout 10    #連線逾時時間

nb_get_retry    3    #重連次數

connect_port 3306    #健全狀態檢查連接埠

}

}

}

3.3 Mysql02進行參數檔案的修改

cat /etc/keepalived/keepalived.conf

#! Configuration File for keepalived

global_defs {

router_id Mysql02 #修改為自己的主機名稱

}

##################第一部分###################

vrrp_instance VI_1 {

state BACKUP #都修改成BACKUP

interface eth0

virtual_router_id 60 #預設51 主從都修改為60

priority 80 #在mysql-ha1上LVS上修改成100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.47.140

}

}

##################第二部分###################

virtual_server 192.168.47.140 3306 {

delay_loop 6

lb_algo wrr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

real_server 192.168.47.140 3306 {

weight 1

notify_down /usr/local/script/mysql.sh #進行資料庫狀態的判斷

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

connect_port 3306

}

}

}

參數說明:

virtual_ipaddress:虛擬IP地址(VIP)

interface :網卡裝置名稱

virtual_server VIP:及Mysql服務連接埠

real_server :真實伺服器位址

3.4 分別走兩台mysql資料庫上面建立以下指令碼,用於判斷資料庫的狀態

vim /usr/local/script/mysql.sh

#!/bin/bash

/etc/init.d/keepalived stop

/etc/init.d/keepalived start

3.5 keepalived的常用指令碼

啟動keepalived服務:service keepalived start

查看keepalived服務:service keepalived status

停止keepalived服務:service keepalived stop

3.6 進行測試

a) 使用PS命令檢測服務運行狀態

Ps -ef|grep keepalived

Ps -ef|grep mysql

b) 查看系統日誌,確定keepalived運行正確

less /var/log/message

tail -f /var/log/messages

c) ip a查看keepalived的運行情況

注意事項:先啟動mysql後啟動keepalived。

Ubuntu下Nginx做負載實現高效能WEB伺服器5---MySQL主主同步

生產環境MySQL主主同步主鍵衝突處理

MySQL主從失敗 錯誤Got fatal error 1236

MySQL主從複製,單台伺服器上實施

搭建MySQLProxy 伺服器實現讀寫分離+主從同步

MySQL 5.5 主從雙向同步

MySQL 5.5主從同步排錯

MySQL主從複製非同步半同步執行個體

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.