假設系統一直能夠提供服服務器租用 . mysql高可用
1, 2.實現數據備份
3, 異地容災
1.1 主從復制流程
不同的復制協議
MySQL本身沒有提供replication failover的解決方案,通過MMM方案能實現服務器的故障轉移,從而實現mysql的高可用。
此方案特點:
1、安全、穩定性較高,可擴展性好
2、 對服務器數量要求至少三臺及以上
3、 對雙主(主從復制性要求較高)
4、 同樣可實現讀寫分離
1.3.3 MySQL+MHA架構
MHA目前在Mysql高可用方案中應該也是比較成熟和常見的方案,它由日本人開發出來,在mysql故障切換過程中,MHA能做到快速自動切換操作,而且還能最大限度保持數據的一致性
此架構特點:
1、安裝布署簡單,不影響現有架構
2、自動監控和故障轉移
3、保障數據一致性
4、故障切換方式可使用手動或自動多向選擇
5、適應范圍大(適用任何存儲引擎)
2.MySQL高可用帶給我們對高可用架構設計的思考
為了保證數據的一致性,mysql提出了復制的概念。
為了滿足acid,mysql提供了兩種日志redo和undo日志,
undo log不是redo log的逆向過程,其實它們都算是用來恢復的日志:
undo用來回滾行記錄到某個版本。undo log一般是邏輯日志,根據每行記錄進行記錄。
為了高可用的保證,有了多主或者主從切換。
數據庫的高可用架構一般在系統的底層,這方面的技術要求比較高,整個高可用系統大致如下:
3.總結
我們都知道,單點是系統高可用的大敵,單點往往是系統高可用最大的風險和敵人,應該盡量在系統設計的過程中避免單點。
方法論上,高可用保證的原則是“集群化”,或者叫“冗余”:只有一個單點,掛了服務會受影響;如果有冗余備份,掛了還有其他backup能夠頂上。冗余的最大難道是一致性即復制技術,mysql提供了一個思路。
有了冗余之后,還不夠,每次出現故障需要人工介入恢復勢必會增加系統的不可服務實踐。所以,又往往是通過“自動故障轉移”來實現系統的高可用。災備的恢復一般通過日志來做,日志的設計也是難點,mysql提供了一個思路。