MariaDB Galera Cluster集群優(yōu)缺點
1.簡述:
MariaDB Galera Cluster 是一套在mysql innodb存儲引擎上面實現(xiàn)multi-master及數(shù)據(jù)實時同步的系統(tǒng)架構(gòu)却邓,業(yè)務(wù)層面無需做讀寫分離工作咽弦,數(shù)據(jù)庫讀寫壓力都能按照既定的規(guī)則分發(fā)到 各個節(jié)點上去。在數(shù)據(jù)方面完全兼容 MariaDB 和 MySQL掘而。
2.特性:
(1).同步復(fù)制 Synchronous replication
(2).Active-active multi-master 拓?fù)溥壿? (3).可對集群中任一節(jié)點進(jìn)行數(shù)據(jù)讀寫
(4).自動成員控制迫悠,故障節(jié)點自動從集群中移除
(5).自動節(jié)點加入
(6).真正并行的復(fù)制鹏漆,基于行級
(7).直接客戶端連接,原生的 MySQL 接口
(8).每個節(jié)點都包含完整的數(shù)據(jù)副本
(9).多臺數(shù)據(jù)庫中數(shù)據(jù)同步由 wsrep 接口實現(xiàn)
3.局限性
(1).目前的復(fù)制僅僅支持InnoDB存儲引擎,任何寫入其他引擎的表创泄,包括mysql.*表將不會復(fù)制,但是DDL語句會被復(fù)制的,因此創(chuàng)建用戶將會被復(fù)制,但是insert into mysql.user…將不會被復(fù)制的.
(2).DELETE操作不支持沒有主鍵的表,沒有主鍵的表在不同的節(jié)點順序?qū)⒉煌?如果執(zhí)行SELECT…LIMIT… 將出現(xiàn)不同的結(jié)果集.
(3).在多主環(huán)境下LOCK/UNLOCK TABLES不支持,以及鎖函數(shù)GET_LOCK(), RELEASE_LOCK()…
(4).查詢?nèi)罩静荒鼙4嬖诒碇幸樟帷H绻_啟查詢?nèi)罩荆荒鼙4娴轿募小? (5).允許最大的事務(wù)大小由wsrep_max_ws_rows和wsrep_max_ws_size定義鞠抑。任何大型操作將被拒絕饭聚。如大型的LOAD DATA操作。
(6).由于集群是樂觀的并發(fā)控制搁拙,事務(wù)commit可能在該階段中止秒梳。如果有兩個事務(wù)向在集群中不同的節(jié)點向同一行寫入并提交,失敗的節(jié)點將中止箕速。對 于集群級別的中止酪碘,集群返回死鎖錯誤代碼(Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)).
(7).XA事務(wù)不支持,由于在提交上可能回滾盐茎。
(8).整個集群的寫入吞吐量是由最弱的節(jié)點限制兴垦,如果有一個節(jié)點變得緩慢,那么整個集群將是緩慢的字柠。為了穩(wěn)定的高性能要求滑进,所有的節(jié)點應(yīng)使用統(tǒng)一的硬件。
(9).