一.MHA集群
MHA master high avavibility 主服務器高可用
如上圖所示,我們之前說過,如果在主從復制架構中主服務器出現故障,就需要我們將從服務器作為主服務器,等故障的主服務器修復好之后,再將修好的主服務器作為從服務器連接到主服務器中。
此時我們進行這個操作的時候,會有一個時間間隔。
MHA的作用就相當于是一個監控一樣,MHA搭建好之后,就可以實時的監控主服務器的運行狀態。
一旦檢測到主服務器發生故障之后,MHA就會在現有的從服務器中提升一個從服務器作為主服務器,并且MHA還能將之前的從服務器自動連接到新的主服務器上,MHA主要適用的是一主多從的環境,
應用場景:一主多從的環境
作用:提升主從復制環境中主服務器的可用性,盡量減少故障時間,
周期性檢測主服務器的運行狀態,一旦檢測到主服務器故障后,會在現有的從服務器中選舉一個新主服務器,并把其他的從服務器自動連接到新主服務器上,繼續維持主從復制的運行,
問題:將來一主多從的環境中主服務器故障的時候,將哪個從服務器提升為主服務器?
在主從復制中一直存在的是時間延遲的問題,將來在數據量很大的情況下,我們就要看哪個從服務器復制的數據最多,我們就將那個從服務器作為新的主服務器,
如上圖所示,我們如何去查看哪個從服務器復制的數據多呢?
show slave status\G
我們就去看這行數據,哪個從服務器的這行數據大,就表示復制的數據多,。
同時MHA會嘗試記錄主服務器的二進制日志信息,將來在新選舉出來的主服務器上自動應用二進制日志信息,確保數據的完整性會將其他slave服務器自動連接到新的master服務器對于前端應用程序全是透明的。【如果檢測不到舊的主服務器的二進制日志文件,那就需要人為干預了,人為獲取舊主服務器二進制日志文件內容,】
MHA也可以做集群,來避免MHA的單點故障。
MHA角色:
1.mha-manager? mha管理者
建議將其部署在獨立的服務器上,用于檢測主服務器的運行狀態
2.mha-node mha客戶端
部署所有數據庫服務器上,具體作用是mha管理者與所有機器來進行通信。
二.部署MHA集群
環境描述:
192.168.183.10? ? ? ? ? MHA? Manager? +MHA? node
192.168.183.11? ? ? ? ? ?master服務器? ? mha_node
192.168.183.12? ? ? ? ? ?slave服務器? ? mha_node
192.168.183.13? ? ? ? ? ?slave服務器? ? ? mha_node
1.關閉防火墻? selinux? 時間同步
2.配置免密ssh
如上圖所示,在生成密鑰以后,將這個公鑰文件夾的名字進行修改,改成ssh認證服務要求的名字,隨后將整個文件夾拷貝給其他的機器。
在mha 管理者上生成密鑰,隨后將這個密鑰拷貝給其他的機器。
3.添加所有機器上添加所有主機名解析。
如上圖所示,在一臺mha管理者的機器上添加好主機名解析之后,將這個文件拷貝給其他的機器,。
4.確保所有機器時間同步
如上圖所示,檢測所有機器時間同步
5.在mha管理機上安裝mha相關軟件
使用阿里的epel源。
如上圖所示,在管理機上安裝如上的兩個軟件。
6.在所有數據庫服務器上安裝mha4mysql-node軟件
7.配置一主兩從環境
1)在所有數據庫服務器上啟用二進制日志
在所有機器上將MySQL數據庫安裝好,即命令yum? install -y? mariadb-server
如上圖所示,第一是在配置一主兩從的環境中所有機器必須要啟動二進制日志,
如上圖所示,給每一個機器去配置server_id以及開啟二進制日志,以及開啟和自啟動數據庫。
第二創建允許所有主機遠程連接的復制用戶
如上圖所示,在主服務器上創建好遠程復制用戶之后,分別在12和13的機器上去建立連接,去鏈接11這個主服務器。
3)配置從服務器連接主服務器,確保三臺服務器都有遠程復制用戶。
如上圖所示,這是在12的機器上創建連接,隨后啟動復制線程,隨后使用show slave status\G 來查看復制線程狀態。
如上圖所示,如果在 從服務器上創建的連接操作沒有錯誤的話,那么在主服務器上創建的用戶就會在從服務器上也創建出來,。
如上圖所示,我們也在這個機器上連接與主服務器的連接,然后啟動復制線程,去使用命令show slave? status\G來去查看復制線程狀態。
8.創建MHA需要的管理用戶
如上圖所示,這是在主服務器創建4個用戶,管理用戶需要有4個,允許MHA集群中的任何一個機器去連接他們。
9.創建mha? manager工作目錄
10.編輯mha的配置文件
如上圖所示,這就是MHA的配置文件。
如上圖所示,這是MHA的配置文件。
11.檢測免密ssh是否正常
12.檢測一主兩從環境是否正常
?
如上圖所示,可以看到MySQL復制環境是好的,
13.啟動MHA集群
14.驗證MHA集群
一旦MHA完成一次選舉之后MHA進程自己就停止了。
如上圖所示,MHA進程停止,
如上圖所示,只有當故障的主服務器被修好,作為從服務器連接到主服務器之后,MHA進程才能恢復正常,
15.修復故障的主機,將其作為從服務器連接到主服務器上,
如上圖所示,在新主服務器上進行一個完全的數據備份,
隨后將這個備份拷貝給11的機器。
如上圖所示,在從服務器上建立指向主服務器的連接。
隨后在從服務器上啟動IO線程和SQL線程,
隨后在mha的機器上啟動mha線程。