天天看點

MySQL5.6 部署MHA

趁着最近幾天休息,就把之前沒有補全的部落格也來補補。

今天就和大家聊聊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 &amp;&amp; hostname manager</code>

<code>主機: master執行指令</code>

<code># sed -i 's/HOSTNAME=.*/HOSTNAME=master/g' /etc/sysconfig/network &amp;&amp; hostname master</code>

<code>主機: slave01執行指令</code>

<code># sed -i 's/HOSTNAME=.*/HOSTNAME=slave01/g' /etc/sysconfig/network &amp;&amp; hostname slave01</code>

<code>主機: slave02執行指令</code>

<code># sed -i 's/HOSTNAME=.*/HOSTNAME=slave02/g' /etc/sysconfig/network &amp;&amp; hostname slave02</code>

2、主機名解析

     本文轉自zys467754239 51CTO部落格,原文連結http://blog.51cto.com/467754239/1695175:,如需轉載請自行聯系原作者