天天看點

MYSQL + MHA +keepalive + VIP安裝配置

一、總概

1、MHA介紹

      MHA(Master High Availability)是自動的master故障轉移和Slave提升的軟體包.它是基于标準的MySQL複制(異步/半同步).

      MHA有兩部分組成:MHA Manager(管理節點)和MHA Node(資料節點).

      MHA Manager可以單獨部署在一台獨立機器上管理多個master-slave叢集,也可以部署在一台slave上.MHA Manager探測叢集的node節點,當發現master出現故障的時候,它可以自動将具有最新資料的slave提升為新的master,然後将所有其 它的slave導向新的master上.整個故障轉移過程對應用程式是透明的。

      MHA node運作在每台MySQL伺服器上(master/slave/manager),它通過監控具備解析和清理logs功能的腳本來加快故障轉移的。

2、MHA工作原理

-從當機崩潰的master儲存二進制日志事件(binlog events)。

-識别含有最新更新的slave。

-應用差異的中繼日志(relay log)到其它slave。

-應用從master儲存的二進制日志事件(binlog events)。

-提升一個slave為新master。

-使其它的slave連接配接新的master進行複制。

3、MHA工具包:

(1)、 Manager工具:

- masterha_check_ssh : 檢查MHA的SSH配置。

- masterha_check_repl : 檢查MySQL複制。

- masterha_manager : 啟動MHA。

- masterha_check_status : 檢測目前MHA運作狀态。

- masterha_master_monitor : 監測master是否當機。

- masterha_master_switch : 控制故障轉移(自動或手動)。

- masterha_conf_host : 添加或删除配置的server資訊。

(2)、 Node工具(這些工具通常由MHA Manager的腳本觸發,無需人手操作)。

- save_binary_logs : 儲存和複制master的二進制日志。

- apply_diff_relay_logs : 識别差異的中繼日志事件并應用于其它slave。

- filter_mysqlbinlog : 去除不必要的ROLLBACK事件(MHA已不再使用這個工具)。

- purge_relay_logs : 清除中繼日志(不會阻塞SQL線程)。

二、主機部署

 三、首先用ssh-keygen實作三台主機之間互相免密鑰登入

 注意:如果不能實作任何兩台主機間兩兩可以無密登入,後面的步驟會有問題。

四、安裝MHAmha4mysql-node,mha4mysql-manager 軟體包

1、manager mha4mysql-manager軟體安裝

說明有很多依賴包沒有安裝,解決方法:

再安裝

2、node MHAmha4mysql-node軟體安裝

五、MHA的配置

1、管理機manager上配置MHA檔案

2、masterha_check_ssh工具驗證ssh信任登入是否成功

 注意:用ssh-keygen實作三台主機之間互相免密鑰登入決定這一步是否成功。

成功!

3、masterha_check_repl工具驗證mysql複制是否成功

 注意:上一篇文章中的master--slaver是否成功決定這一步是否成功。或是MHA檔案配置的使用者賬号有關。

成功。

4、啟動MHA manager,并監控日志檔案

5、測試master(231)當機後,是否會自動切換

6、故障轉移後,用指令恢複原來的master

(1)、在舊master上執行

(2)然後在manager節點上:

 過程中一直輸入YES;

 這樣的話mysql主從機進行了切換。可以測試一下資料在新的master(232)的表中新增資料後,在新slave(231)對應的表中是否已實作資料同步。

六、MHA已完成配置并進行了測試。但如果是程式連接配接資料庫并不會自動切換IP,那我們如何實作呢,請期待一篇keepalive + VIP安裝配置。

MHA