天天看點

mysql high availability 概述

一.什麼是高可用性

1.可用性是指服務不間斷運轉的時間,通常用百分比來表示,例如

   99.999%表示每年最多允許5分鐘的當機時間

2.可用性的效果和開銷比例呈線性增長

3.可用性的意義往往也不盡相同,例如,mysql需要“預熱”

二.導緻當機的原因

1.雖然導緻當機的原因多種多樣,但大緻可以分為以下兩種

   a.人為當機(高可靠性)

   b.非人為當機(高可用性)

2.當機原因比例分布

   a.運作環境(磁盤問題,系統崩潰,網絡故障等)

   b.性能問題(性能低下sql,過大的負載等)

   c.複制問題(過高的延時,複制故障等)

   d.其他問題(資料損壞,資料丢失等)

三.如何實作高可用性

1.提升平均故障間隔時間(MTBF)

   a.盡可能降低人為因素導緻的當機

   b.做好備份,周期性測試備份恢複

   c.謹慎更新

   d.盡可能避免使用複雜的特性,如複制過濾和觸發器

   e.定期檢查複制的完整性

2.降低平均故障恢複時間(MTTR)

   a.建立一個能夠提供備援和故障轉移能力的系統架構

四.linuxHA叢集的三種方式

1.主從方式

2.對稱方式

3.多級方式

五.高可用技術的基本組成

1.服務(service)

2.浮動IP或虛拟IP(Float IP or Virtual IP)

3.節點伺服器(Node)

4.失效域(Failover Domain)

5.心跳(heatbeat)

6.共享或者複制存儲(share or replicas Storage)

六.高可用技術的相關概念

1.單一故障點(SPOF)

2.仲裁(Quorum)

3.失效遷移(Failover)

4.螢幕(Monitor)

5.可程式設計電源控制器(PPC or SPS)

   a.Programable Power Controller

   b.Smart Power Switch