mha如何管理多套mysql集群_Mysql 集群高可用方案 MHA
MHA是什么?
MHA(master high availability) 是用來(lái)保證 Mysql 集群高可用性的,對(duì) master 進(jìn)行監(jiān)控,發(fā)現(xiàn) master 出現(xiàn)故障后,自動(dòng)進(jìn)行故障轉(zhuǎn)移,從眾多 slave 中選舉出新的 master,并使其他 slave 與新 master 進(jìn)行同步
主要特點(diǎn)是故障處理速度快,最大程度上保證數(shù)據(jù)不丟失
工作原理
當(dāng) master 出現(xiàn)故障后,MHA 會(huì)盡快搶救數(shù)據(jù),嘗試到 master 中獲取二進(jìn)制日志,如果不是物理故障,通常可以成功拿到
選舉出新的 master,規(guī)則是看哪個(gè) slave 上的數(shù)據(jù)是最新的
找出最新 slave 后,其他 slave 會(huì)對(duì)比最新 slave 的數(shù)據(jù),看自己有哪些差距,形成差異日志
如果從故障 master 中成功獲取了二進(jìn)制日志的話,會(huì)在這個(gè)最新 slave 上進(jìn)行回放,保證數(shù)據(jù)一致
把這個(gè)最新 slave 提升為新的 master
其它 slave 應(yīng)用相應(yīng)的差異日志,并開始從新的 master 開始復(fù)制
優(yōu)勢(shì)
(1)故障處理速度快
一般在 30s 內(nèi)就可以完成
(2)數(shù)據(jù)安全性好
slave 之間使用差異日志,保證了數(shù)據(jù)的一致,通過(guò)半同步復(fù)制的配合,幾乎可以保證數(shù)據(jù)不丟失
(3)易擴(kuò)展
使用 Perl 開發(fā),開源,開放接口,支持其他語(yǔ)言開發(fā)擴(kuò)展
修改原有功能代碼和擴(kuò)展開發(fā)都很方便
(4)可以監(jiān)控多個(gè)集群
一個(gè) MHA 管理服務(wù)器可以管理多個(gè)集群
不足
(1)只監(jiān)控 master
MHA 只保證了 master 的高可用,并沒有監(jiān)控 slave 的狀態(tài),例如某 slave 出現(xiàn)復(fù)制中斷、延遲增加等問題,都是不知道的
(2)沒有集成虛擬IP的配置
在故障轉(zhuǎn)移時(shí),為使對(duì)外透明,需要使用虛擬IP,MHA沒有自動(dòng)實(shí)現(xiàn)VIP,需要我們自己實(shí)現(xiàn)
(3)安全問題
MHA 要求所有服務(wù)器之間都配置SSH免登錄,存在一定的安全隱患,如果某臺(tái)服務(wù)器出現(xiàn)了安全問題,那么就可能影響其他服務(wù)器
MHA 是目前非常成熟的高可用性方案,這里先大體了解下MHA,之后再詳細(xì)介紹配置過(guò)程
總結(jié)
以上是生活随笔為你收集整理的mha如何管理多套mysql集群_Mysql 集群高可用方案 MHA的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux mysql dns_Linu
- 下一篇: mysql long raw_读取Ora