常見的MYSQL高可用解決方案

MySQL 是一種關係數據庫管理系統,關聯數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。MySQL 軟件採用了雙受權政策(本詞條「受權政策」),它分爲社區版和商業版,因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇 MySQL 做爲網站數據庫。因爲其社區版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發環境。html

常見的MYSQL高可用解決方案
 

工具/原料

 
  • 計算機操做系統
  • MySQL

方法/步驟

 
  1. 1

    主從複製解決方案:這是MySQL自身提供的一種高可用解決方案,數據同步方法採用的是MySQL replication技術。MySQL replication就是從服務器到主服務器拉取二進制日誌文件,而後再將日誌文件解析成相應的SQL在從服務器上從新執行一遍主服務器的操做,經過這種方式保證數據的一致性。爲了達到更高的可用性,在實際的應用環境中,通常都是採用MySQL replication技術配合高可用集羣軟件keepalived來實現自動failover,這種方式能夠實現95.000%的SLA。java

    常見的MYSQL高可用解決方案
  2. 2

    MMM/MHA高可用解決方案:MMM提供了MySQL主主複製配置的監控、故障轉移和管理的一套可伸縮的腳本套件。在MMM高可用方案中,典型的應用是雙主多從架構,經過MySQL replication技術能夠實現兩個服務器互爲主從,且在任什麼時候候只有一個節點能夠被寫入,避免了多點寫入的數據衝突。同時,當可寫的主節點故障時,MMM套件能夠馬上監控到,而後將服務自動切換到另外一個主節點,繼續提供服務,從而實現MySQL的高可用。mysql

    常見的MYSQL高可用解決方案
  3. 3

    Heartbeat/SAN高可用解決方案:在這個方案中,處理failover的方式是高可用集羣軟件Heartbeat,它監控和管理各個節點間鏈接的網絡,並監控集羣服務,當節點出現故障或者服務不可用時,自動在其餘節點啓動集羣服務。在數據共享方面,經過SAN(Storage Area Network)存儲來共享數據,這種方案能夠實現99.990%的SLA。sql

    常見的MYSQL高可用解決方案
  4. 4

    Heartbeat/DRBD高可用解決方案:此方案處理failover的方式上依舊採用Heartbeat,不一樣的是,在數據共享方面,採用了基於塊級別的數據同步軟件DRBD來實現。DRBD是一個用軟件實現的、無共享的、服務器之間鏡像塊設備內容的存儲複製解決方案。和SAN網絡不一樣,它並不共享存儲,而是經過服務器之間的網絡複製數據。數據庫

    常見的MYSQL高可用解決方案
  5. 5

    NDB CLUSTER:國內用NDB集羣的公司很是少,貌似有些銀行有用。NDB集羣不須要依賴第三方組件,所有都使用官方組件,能保證數據的一致性,某個數據節點掛掉,其餘數據節點依然能夠提供服務,管理節點須要作冗餘以防掛掉。缺點是:管理和配置都很複雜,並且某些SQL語句例如join語句須要避免。服務器

    常見的MYSQL高可用解決方案
  6. 6

    使用第三方的Tungsten軟件:使用java編寫,不是MYSQL內置的,一樣是MYSQL數據庫複製,不過他不是用MYSQL內置的組件來作的,不但支持MYSQL數據庫複製也支持異構數據庫的複製,並且對異構數據庫複製支持較好,例如MYSQL複製到ORACLE。網絡

    常見的MYSQL高可用解決方案
    END

注意事項

 
  • ndb是一種存儲引擎,一般在mysql cluster中使用。
  • LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統。
  • Keepalived在這裏主要用做RealServer的健康狀態檢查以及LoadBalance主機和BackUP主機之間failover的實現
相關文章
相關標籤/搜索