趁着最近幾天休息,就把之前沒有補全的部落格也來補補。
今天就和大家聊聊MySQL高可用方案中的MHA
在中小型架構中,針對MySQL做高可用 用的最多的可能就是keepalived/heartbeat+MySQL Replication。
這種方案配置簡單、維護友善,并且也能實作MySQL的故障轉移,是以更多的傾向于此架構
MHA是什麼?
MHA是由日本Mysql專家用Perl寫的一套Mysql故障切換方案,來保障資料庫的高可用性,它的功能是能在0-30s之内實作主Mysql故障轉移(failover),MHA故障轉移可以很好的幫我們解決從庫資料的一緻性問題,同時最大化挽回故障發生後資料的一緻性。
MHA裡有兩個角色一個是node節點 一個是manager節點,要實作這個MHA,必須最少要三台資料庫伺服器,一主多備,即一台充當master,一台充當master的備份機,另外一台是從屬機,這裡實驗為了實作更好的效果使用四台機器,需要說明的是一旦主伺服器當機,備份機即開始充當master提供服務,如果主伺服器上線也不會再成為master了,因為如果這樣資料庫的一緻性就被改變了
這裡有一個mha的網絡拓撲圖,我們先來簡單的介紹下
<a href="http://s3.51cto.com/wyfs02/M02/73/41/wKiom1X4V6HQmEVHAAR6Y7pgc9M478.jpg" target="_blank"></a>
先來聊聊這個拓撲圖,文章開篇也有過介紹,MHA有兩個重要的角色,一個是manager,另外一個是node;
從這個拓撲圖中,或許大家不難分辨出如下資訊
1
2
3
4
<code>192.168.1.117 manager 管理節點</code>
<code>192.168.1.116 master 主庫</code>
<code>192.168.1.118 slave01 從庫 + 備庫</code>
<code>192.168.1.119 slave02 從庫</code>
一、環境初始化
1、修改主機名
5
6
7
8
<code>主機: manager執行指令</code>
<code># sed -i 's/HOSTNAME=.*/HOSTNAME=manager/g' /etc/sysconfig/network && hostname manager</code>
<code>主機: master執行指令</code>
<code># sed -i 's/HOSTNAME=.*/HOSTNAME=master/g' /etc/sysconfig/network && hostname master</code>
<code>主機: slave01執行指令</code>
<code># sed -i 's/HOSTNAME=.*/HOSTNAME=slave01/g' /etc/sysconfig/network && hostname slave01</code>
<code>主機: slave02執行指令</code>
<code># sed -i 's/HOSTNAME=.*/HOSTNAME=slave02/g' /etc/sysconfig/network && hostname slave02</code>
2、主機名解析
本文轉自zys467754239 51CTO部落格,原文連結http://blog.51cto.com/467754239/1695175:,如需轉載請自行聯系原作者