1. 程式人生 > >MySQL高可用之MHA理論章節

MySQL高可用之MHA理論章節

MHA 高可用 復制

背景介紹

高可用架構對於互聯網服務基本是標配,無論是應用服務還是數據庫服務都需要做到高可用。本文是對MySQL數據庫的高可用方案中,基於主從復制的MHA軟件理論部分進行梳理和小結。

MHA軟件介紹

1.MHA軟件是由MHA Manager(管理節點)和MHA Node(數據節點)組成
2.MHA Manager可以單獨部署在一臺獨立的機器上,也可以部署在一臺slave節點上
3.MHA Node運行在每臺MySQL服務器上
4.MHA Manager會定時探測集群中的master節點,當master出現故障時,自動將數據最新的slave提升為新的master,然後將其他slave重新指向新的master恢復主從復制。

5.整個故障轉移過程對應用程序完全透明

MHA架構介紹

1.目前MHA主要支持一主多從的架構,要搭建MHA,要求一個復制集群中必須最少有三臺數據庫服務器
2.在一主兩從的MHA集群架構中,一臺充當master,一臺充當備用master,一臺充當slave
3.因為至少需要三臺服務器,出於機器成本的考慮,淘寶在該基礎上做了改進,目前淘寶TMHA支持一主一從
4.我們自己使用時,也可以使用1主1從,但是master主機宕機後無法切換,以及無法補全binlog。不過,master的mysqld進程crash後,還是可以切換成功,以及補全binlog

MHA切換原理

自動故障切換過程

1.配置文件檢查階段,這個階段會檢查整個集群配置文件配置

2.宕機的master處理,這個階段包括vip移除操作,主機關機操作
3.復制dead master和最新slave相差的relay log,並保存到MHA Manager定義的目錄下
4.識別含有最新更新的slave
5.應用從master保存的二進制日誌事件(binlog events)
6.提升一個slave為新的master
7.使其他的slave連接新的master進行復制

手工故障切換過程

註意事項:MHA Manager必須沒有運行
1.手工調用MHA進行故障切換,masterha_master_switch
2.在經歷配置文件檢查、存活服務器檢查、集群復制檢查、備用master設置檢查後,詢問master陣亡,是否進行切換

3.宕機的master處理,這個階段包括vip移除操作,主機關機操作
4.復制dead master和最新slave相差的relay log,並保存到MHA Manager定義的目錄下
5.識別含有最新更新的slave
6.應用從master保存的二進制日誌事件(binlog events)
7.提升一個slave為新的master
8.使其他的slave連接新的master進行復制

手工在線切換過程

1.檢測集群復制設置和確定當前master
2.確定新的master
3.阻塞寫入到當前master
4.等待所有slave趕上復制
5.授予寫入到新的master
6.重新設置slave從新的master進行復制

MySQL高可用之MHA理論章節