MariaDB Galera Cluster

MariaDB Galera Cluster是一種同步多主機集群方案龄减,目前它支持XtraDB/ InnoDB存儲引擎璧帝,為MySQL/MariaDB的高可用架構(gòu)提供了一種實現(xiàn)基礎(chǔ)。

首先引用《MySQL高可用方案選型參考》這篇文章中關(guān)于Gelera優(yōu)缺點的分析。

優(yōu)勢:

  • 服務(wù)高可用;
  • 數(shù)據(jù)同步復(fù)制(并發(fā)復(fù)制),幾乎無延遲逆航;
  • 多個可同時讀寫節(jié)點,可實現(xiàn)寫擴展渔肩,不過最好事先進行分庫分表因俐,讓各個節(jié)點分別寫不同的表或者庫,避免讓galera解決數(shù)據(jù)沖突周偎;
  • 新節(jié)點可以自動部署抹剩,部署操作簡單;
  • 數(shù)據(jù)嚴格一致性蓉坎,尤其適合電商類應(yīng)用澳眷;
  • 完全兼容MySQL;

劣勢:

  • 只支持InnoDB引擎蛉艾;
  • 所有表都要有主鍵钳踊;
  • 不支持LOCK TABLE等顯式鎖操作;
  • 鎖沖突勿侯、死鎖問題相對更多拓瞪;
  • 不支持XA;
  • 集群吞吐量/性能取決于短板助琐;
  • 新加入節(jié)點采用SST時代價高吴藻;
  • 存在寫擴大問題;
  • 如果并發(fā)事務(wù)量很大的話弓柱,建議采用InfiniBand網(wǎng)絡(luò)沟堡,降低網(wǎng)絡(luò)延遲;

接下來動手實踐矢空,用虛擬機完成MariaDB Galera Cluster的搭建航罗。

1.環(huán)境準備

CentOS 7.3
MariaDB 10.1.23
host: 192.168.1.103,192.168.1.105,192.168.1.106

2.修改MariaDB配置文件

192.168.1.103

cat << EOF > /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.103,192.168.1.105,192.168.1.106"
wsrep_node_name=node1
wsrep_node_address=192.168.1.103
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
# Allow server to accept connections on all interfaces.
# bind-address=0.0.0.0
# Optional setting
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
EOF

192.168.1.105

cat << EOF > /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.103,192.168.1.105,192.168.1.106"
wsrep_node_name=node2
wsrep_node_address=192.168.1.105
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
# Allow server to accept connections on all interfaces.
# bind-address=0.0.0.0
# Optional setting
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
EOF

192.168.1.106

cat << EOF > /etc/my.cnf.d/server.cnf
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.103,192.168.1.105,192.168.1.106"
wsrep_node_name=node3
wsrep_node_address=192.168.1.106
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
# Allow server to accept connections on all interfaces.
# bind-address=0.0.0.0
# Optional setting
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
EOF

3.初始化集群

# 在第一個節(jié)點上啟動galera cluster
galera_new_cluster
# 或
/usr/sbin/mysqld --wsrep-new-cluster --user=root &
# 其它節(jié)點重啟mariadb
systemctl restart mariadb.service
# 特別提醒:如果其它節(jié)點無法啟動,需要關(guān)閉selinux
# /etc/selinux/config中屁药,SELINUX=enforcing改為SELINUX=disabled粥血,重啟后永久生效

4.查詢集群中的節(jié)點

# 查看節(jié)點數(shù)量
MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+
# 查看更多信息
MariaDB [(none)]> SHOW STATUS LIKE 'wsrep%';

5.測試

  • 向任意節(jié)點數(shù)據(jù)庫寫入數(shù)據(jù),無論是對數(shù)據(jù)庫酿箭、表還是對表中數(shù)據(jù)的操作复亏,都會更新到其它節(jié)點;
  • 任意使一個節(jié)點上的MariaDB下線缭嫡,集群會自動將該節(jié)點從集群中clean up缔御;MariaDB再次上線時,集群又自動將該節(jié)點添加進來妇蛀。

具體的測試過程就不擺出來了耕突,集群搭建好后這些結(jié)果是沒有什么懸念的。

總結(jié):以上只是如何搭建集群评架,如果要對這種集群方案有深刻的認識和理解眷茁,需要對其原理進一步研究!建議閱讀官方文檔及其它文章纵诞。

參考文章:
Galera replication for MySQL(包括Galera replication原理)
MySQL的Galera Cluster配置說明
如何修復(fù) MariaDB Galera Cluster

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末上祈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子浙芙,更是在濱河造成了極大的恐慌登刺,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茁裙,死亡現(xiàn)場離奇詭異塘砸,居然都是意外死亡,警方通過查閱死者的電腦和手機晤锥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門掉蔬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矾瘾,你說我怎么就攤上這事女轿。” “怎么了壕翩?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵蛉迹,是天一觀的道長。 經(jīng)常有香客問我放妈,道長北救,這世上最難降的妖魔是什么荐操? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮珍策,結(jié)果婚禮上托启,老公的妹妹穿的比我還像新娘。我一直安慰自己攘宙,他們只是感情好屯耸,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹭劈,像睡著了一般疗绣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铺韧,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天多矮,我揣著相機與錄音,去河邊找鬼祟蚀。 笑死工窍,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的前酿。 我是一名探鬼主播患雏,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼罢维!你這毒婦竟也來了淹仑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤肺孵,失蹤者是張志新(化名)和其女友劉穎匀借,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體平窘,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吓肋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瑰艘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片是鬼。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖紫新,靈堂內(nèi)的尸體忽然破棺而出均蜜,到底是詐尸還是另有隱情,我是刑警寧澤芒率,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布囤耳,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏充择。R本人自食惡果不足惜德玫,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望聪铺。 院中可真熱鬧化焕,春花似錦、人聲如沸铃剔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽键兜。三九已至,卻和暖如春穗泵,著一層夾襖步出監(jiān)牢的瞬間普气,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工佃延, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留现诀,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓履肃,卻偏偏與公主長得像仔沿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子尺棋,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容