mysql資料庫作為最基礎的資料儲存服務之一,在整個系統中有著非常重要的地位,因此要求其具備高可用性是無可厚非的。有很多解決方案能實現不同的sla(服務水平協定),這些方案可以保證資料庫伺服器在硬體或軟體出現故障時服務繼續可用。
高效能性需要解決的主要有兩個問題,即如何實現資料共享或同步資料,另乙個是如何處理failover,資料共享一般的解決方案是通過san(storage area network)來實現,而資料同步可以通過rsync軟體或drbd技術來實現;failover的意思就是當伺服器宕機或出現錯誤時可以自動切換到其他備用的伺服器,不影響伺服器上業務系統的執行。本文重點介紹一下目前比較成熟的mysql高效能解決方案。
1、主從複製解決方案
這是mysql自身提供的一種高可用解決方案,資料同步方法採用的是mysql replication技術。mysql replication就是乙個日誌的複製過程,在複製過程中乙個伺服器充當主伺服器,而乙個或多個其他伺服器充當從伺服器,簡單說就是從伺服器到主伺服器拉取二進位制日誌檔案,然後再將日誌檔案解析成相應的sql在從伺服器上重新執行一遍主伺服器的操作,通過這種方式保證資料的一致性。
mysql replication技術僅僅提供了日誌的同步執行功能,而從伺服器只能提供讀操作,並且當主伺服器故障時,必須通過手動來處理failover,通常的做法是將一台從伺服器更改為主伺服器。這種解決方案在一定程度上實現了mysql的高可用性,可以實現90.000%的sla。
為了達到更高的可用性,在實際的應用環境中,一般都是採用mysql replication技術配合高可用集群軟體來實現自動failover,這種方式可以實現95.000%的sla。8.2節會重點介紹通過keepalived結合mysql replication技術實現mysql高可用構架的解決方案。
2、mmm高可用解決方案
mmm是master-master replication manager for mysql的縮寫,全稱為mysql主主複製管理器,它提供了mysql主主複製配置的監控、故障轉移和管理的一套可伸縮的指令碼套件。在mmm高可用方案中,典型的應用是雙主多從架構,通過mysql replication技術可以實現兩個伺服器互為主從,且在任何時候只有乙個節點可以被寫入,避免了多點寫入的資料衝突。同時,當可寫的主節點故障時,mmm套件可以立刻監控到,然後將服務自動切換到另乙個主節點,繼續提供服務,從而實現mysql的高可用。
mmm方案是目前比較成熟的mysql高可用解決方案,可以實現99.000%的sla。8.3節會重點介紹通過mmm實現mysql高可用解決方案。
3、heartbeat/san高可用解決方案
此方案是借助於第三方的軟硬體實現的,在這個方案中,處理failover的方式是高可用集群軟體heartbeat,它監控和管理各個節點間連線的網路,並監控集群服務,當節點出現故障或者服務不可用時,自動在其他節點啟動集群服務。
在資料共享方面,通過san(storage area network)儲存來共享資料,在正常狀態下,集群主節點將掛載儲存進行資料讀寫,而當集**生故障時,heartbeat會首先通過乙個仲裁裝置將主節點掛載的儲存裝置釋放,然後在備用節點上掛載儲存,接著啟動服務,通過這種方式實現資料的共享和同步。這種資料共享方式實現簡單,但是成本較高,並且存在腦裂的可能,需要根據實際應用環境來選擇。這種方案可以實現99.990%的sla。
4、heartbeat/drbd高可用解決方案
這種高可用解決方案也是借助於第三方的軟硬體實現的,在處理failover的方式上依舊採用heartbeat,不同的是,在資料共享方面,採用了基於塊級別的資料同步軟體drbd來實現。
drbd即distributed replicated block device,是乙個用軟體實現的、無共享的、伺服器之間映象塊裝置內容的儲存複製解決方案。和san網路不同,它並不共享儲存,而是通過伺服器之間的網路複製資料。這種方案實現起來稍微複雜,同時也存在腦裂的問題,可以實現99.900%的sla。
5、mysql cluster高可用解決方案
mysql cluster由一組服務節點構成,每個服務節點上均執行著多種程序,包括mysql伺服器、ndb cluster的資料節點、管理伺服器,以及(可能)專門的資料訪問程式。此解決方案是mysql官方主推的技術方案,功能強大,但是由於實現較為繁瑣,配置麻煩,實際的企業應用並不多。mysql cluster的標準版和電信版可以達到99.999%的sla。
本文出自 「愛維linux」 部落格,請務必保留此出處
浪潮 資料高可用解決方案研究
1.什麼是高可用 資料的備份,容災,可靠。資料因多方面原因,面臨丟失的風險 2.浪潮as520e m1的高可用方案 通過lvm 邏輯卷映象 技術,在兩台as520e m1間,建立映象關係。主伺服器寫資料時,會同時寫入這兩套as520e m1。3.浪潮as5600的高可用方案 主服務寫入資料到磁碟時,...
Redis高可用技術解決方案分析
主要針對redis常見的幾種使用方式及其優缺點展開分析。一 常見使用方式 redis的幾種常見使用方式包括 redis單副本 redis多副本 主從 redis sentinel 哨兵 redis cluster redis自研。二 各種使用方式的優缺點 redis自研的高可用解決方案,主要體現在配...
mysql高併發解決方案
mysql高併發的解決方法有 優化sql語句,優化資料庫字段,加快取,分割槽表,讀寫分離以及垂直拆分,解耦模組,水平切分等。高併發大多的瓶頸在後台,在儲存mysql的正常的優化方案如下 1 中sql語句優化 2 資料庫字段優化,索引優化 3 加快取,redis memcache等 4 主從,讀寫分離...