mysql MHA

做爲前提條件,應先配置MySQL複製,並設置SSH公鑰免密碼登陸。MySQL5.5 引入了一種半同步複製功能,該功能能夠確保主服務器和訪問鏈中至少一臺從服務器之間的數據一致性和冗餘。node

MHA由Node和Manager組成,Node運行在每一臺MySQL服務器上,也就是說,無論是MySQL主服務器,仍是MySQL從服務器,都要安裝Node,而Manager一般運行在獨立的服務器上,但若是硬件資源吃緊,也能夠用一臺MySQL從服務器來兼職Manager的角色。mysql

安裝Node:sql

shell> yum install perl-DBD-MySQL
shell> rpm -Uvh http://mysql-master-ha.googlecode.com/files/mha4mysql-node-0.52-0.noarch.rpm

安裝Manager:shell

shell> yum install perl-DBD-MySQL
shell> yum install perl-Config-Tiny
shell> yum install perl-Log-Dispatch
shell> yum install perl-Parallel-ForkManager
shell> rpm -Uvh http://mysql-master-ha.googlecode.com/files/mha4mysql-node-0.52-0.noarch.rpm
shell> rpm -Uvh http://mysql-master-ha.googlecode.com/files/mha4mysql-manager-0.52-0.noarch.rpm

配置:

配置全局設置:ubuntu

shell> cat /etc/masterha_default.cnf
[server default]
user=...
password=...
ssh_user=...

配置應用設置:服務器

shell> cat /etc/masterha_application.cnf
[server_1]
hostname=...

[server_2]
hostname=...

檢查

檢查MySQL複製:app

shell> masterha_check_repl --conf=/etc/masterha_application.cnf

檢查SSH公鑰免密碼登陸:ssh

shell> masterha_check_ssh --conf=/etc/masterha_application.cnf

實戰

首先啓動MHA進程:google

shell> masterha_manager --conf=/etc/masterha_application.cnf

而後檢查MHA狀態:spa

shell> masterha_check_status --conf=/etc/masterha_application.cnf

注:若是正常,會顯示『PING_OK』,不然會顯示『NOT_RUNNING』。

到此爲止,一個基本的MHA例子就能正常運轉了,不過一旦當前的MySQL主服務器發生故障,MHA把某臺MySQL從服務器提高爲新的MySQL主服務器後,如何通知應用呢?這就須要在配置文件里加上以下兩個參數:

說到Failover,一般有兩種方式:一種是虛擬IP地址,一種是全局配置文件。

相關文章
相關標籤/搜索