AWS RDS MySQL和MariaDB Galera Cluster的優缺點比較總結

chenfeng發表於2017-09-12
AWS RDS MySQL
    亞馬遜提供的MySQL服務,部署高可用區域,單主節點、隱藏從節點,自動實現HA切換,可以進行線上擴充套件,超越單個資料庫部署的容量,以處理高讀取量的資料庫負載。
1.    優點:
(1).線上升級不影響業務正常執行,後期擴容性較好
(2).高可用區域部署,隱藏從節點,自動實現HA切換,前端業務不受影響
(3).資料庫層核心引數根據資料庫配置自適應動態調整,無需人工干預
(4).自帶資料庫系統層監控及報警功能
2.缺點
不能避免單節點壓力過高,只能單節點讀寫操作

MariaDB Galera Cluster
Galera Cluster是MariaDB的一個多活多主叢集,其可以使得MariDB的所有節點保持同步,Galera為MariaDB提供了同步複製(相對於原生的非同步複製),因此其可以保證資料庫層的HA,在資料方面完全相容 MariaDB 和 MySQL,針對整個專案的層的資料庫HA需要使用中介軟體來實現HA(如LVS、haproxy…)
1.優點:
     (1).同步複製 Synchronous replication
     (2).Active-active multi-master 拓撲邏輯
     (3).可對叢集中任一節點進行資料讀寫
     (4).自動成員控制,故障節點自動從叢集中移除
     (5).自動節點加入
     (6).真正並行的複製,基於行級
     (7).直接客戶端連線,原生的 MySQL 介面
     (8).每個節點都包含完整的資料副本
     (9).多臺資料庫中資料同步由 wsrep 介面實現
2.缺點
     (1).目前的複製僅僅支援InnoDB儲存引擎,任何寫入其他引擎的表,包括mysql.*表將不會複製,但是DDL語句會被複制的,因此建立使用者將會被複制,但是insert into mysql.user…將不會被複制的.
     (2).DELETE操作不支援沒有主鍵的表,沒有主鍵的表在不同的節點順序將不同,如果執行SELECT…LIMIT… 將出現不同的結果集.
     (3).查詢日誌不能儲存在表中。如果開啟查詢日誌,只能儲存到檔案中。
     (4).允許最大的事務大小由wsrep_max_ws_rows和wsrep_max_ws_size定義。任何大型操作將被拒絕。如大型的LOAD DATA操作。
     (5).由於叢集是樂觀的併發控制,事務commit可能在該階段中止。如果有兩個事務向在叢集中不同的節點向同一行寫入並提交,失敗的節點將中止。對 於叢集級別的中止,叢集返回死鎖錯誤程式碼(Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)).
     (6).XA事務不支援,由於在提交上可能回滾。
     (7).整個叢集的寫入吞吐量是由最弱的節點限制,如果有一個節點變得緩慢,那麼整個叢集將是緩慢的。為了穩定的高效能要求,所有的節點應使用統一的硬體。
     (8).叢集節點建議最少3個。
     (9).DDL操作會鎖住全表,整個叢集會hang住,為了避免整個資料庫叢集hang住,操作前需要修改schema 複製DDL的模式。

總結:
   根據以上的資訊描述在單節點寫入的情況下,RDS MySQL能滿足業務的需要,如果滿足不了則可以用Galera Cluster叢集部署三個節點,對於運維人員來說Galera Cluster相比於RDS MySQL維護成本較高,費用成本較低。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2144838/,如需轉載,請註明出處,否則將追究法律責任。

相關文章