2018-04-26 centos7 系統(tǒng)MariaDB Galera Cluster多主集群搭建

安全提示:如果需要打開防火墻今阳,需要開放防火墻端口:3306, 4444, 4567, 4568 或者對(duì)指定ip允許訪問

機(jī)器列表

192.168.124.137
192.168.124.139

所有機(jī)器操作:

關(guān)閉SELINUX

vi /etc/selinux/config
SELINUX=disabled 

setenforce 0

關(guān)閉防火墻

systemctl stop firewalld.service
systemctl disable firewalld.service

設(shè)置mariadb的yum源并安裝(所有節(jié)點(diǎn)都要

vi /etc/yum.repos.d/mariadb.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=0
yum install MariaDB-server MariaDB-client galera

數(shù)據(jù)庫(kù)配置:

# 配置數(shù)據(jù)庫(kù)密碼,測(cè)試情況使用 root  % 123456
/usr/bin/mysql_secure_installation

grant all privileges on *.* to root@"%" identified by "123456";
flush privileges;

# 配置完成之后關(guān)閉數(shù)據(jù)庫(kù)
systemctl stop mariadb

配置節(jié)點(diǎn):
192.168.124.137 cat /etc/my.cnf.d/server.cnf | grep -v '#' :

[server]

[mysqld]

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.124.137,192.168.124.139"
wsrep_node_name = mariadb_cluster_1
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

wsrep_cluster_name="MariaDB_Cluster"
wsrep_node_address=192.168.124.137
wsrep_sst_method=rsync

wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=2
innodb_buffer_pool_size=1024M
wsrep_sst_auth=root:123456

[embedded]

[mariadb]

[mariadb-10.1]

192.168.124.139 配置 cat /etc/my.cnf.d/server.cnf | grep -v '#' :

[server]

[mysqld]

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.124.137,192.168.124.139"
wsrep_node_name = mariadb_cluster_2
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

wsrep_cluster_name="MariaDB_Cluster"
wsrep_node_address=192.168.124.139
wsrep_sst_method=rsync
wsrep_sst_auth=root:123456

wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=2
innodb_buffer_pool_size=1024M

[embedded]

[mariadb]

[mariadb-10.1]

啟動(dòng) 192.168.124.137:

/usr/sbin/mysqld --wsrep-new-cluster --user=root

查看集群狀態(tài):

MariaDB [(none)]> show  status like "wsrep_cluster_size"; 
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+
1 row in set (0.00 sec)

打開 192.168.124.139 上面的mariadb:

systemctl start mariadb
MariaDB [(none)]> show  status like "wsrep_cluster_size"; 
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+
1 row in set (0.00 sec)

集群大小已經(jīng)發(fā)生變化了缅疟,數(shù)據(jù)庫(kù)被可以使用了翎蹈,下面進(jìn)行數(shù)據(jù)寫入測(cè)試 192.168.:

MariaDB [(none)]> create database qinfei;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> use qinfei;
Database changed
MariaDB [qinfei]> create table ha;
ERROR 1113 (42000): A table must have at least 1 column
MariaDB [qinfei]> create table ha(id int primary key);
Query OK, 0 rows affected (0.01 sec)

MariaDB [qinfei]> show tables;
+------------------+
| Tables_in_qinfei |
+------------------+
| ha               |
+------------------+
1 row in set (0.00 sec)

MariaDB [qinfei]> insert into ha value(1);
Query OK, 1 row affected (0.00 sec)

MariaDB [qinfei]> insert into ha value(2);
Query OK, 1 row affected (0.00 sec)

MariaDB [qinfei]> select * from ha;
+----+
| id |
+----+
|  1 |
|  2 |
+----+
2 rows in set (0.00 sec)

查看從數(shù)據(jù)庫(kù):

MariaDB [(none)]> show databases;;
+--------------------+
| Database           |
+--------------------+
| galera             |
| information_schema |
| mysql              |
| performance_schema |
| qinfei             |
+--------------------+
5 rows in set (0.00 sec)

ERROR: No query specified

MariaDB [(none)]> use qinfei;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [qinfei]> select * from ha;
+----+
| id |
+----+
|  1 |
|  2 |
+----+
2 rows in set (0.00 sec)

數(shù)據(jù)已經(jīng)同步淮菠。

現(xiàn)在在另一個(gè)數(shù)據(jù)庫(kù)192.168.124.139上面操作:

MariaDB [qinfei]> insert into ha value(88);
Query OK, 1 row affected (0.01 sec)

查看192.168.124.137:

MariaDB [qinfei]> select * from ha;
+----+
| id |
+----+
|  1 |
|  2 |
| 88 |
+----+
3 rows in set (0.00 sec)

數(shù)據(jù)完全同步,數(shù)據(jù)庫(kù)集群可以正常使用荤堪。
停掉一個(gè)數(shù)據(jù)庫(kù)之后一樣可以正常使用合陵。

遇見的問題1 :

2018-04-26  3:59:56 140697295214848 [ERROR] WSREP: It may not be safe to bootstrap the cluster from this node. It was not the last one to leave the cluster and may not contain all the updates. To force cluster bootstrap with this node, edit the grastate.dat file manually and set safe_to_bootstrap to 1 .
2018-04-26  3:59:56 140697295214848 [ERROR] WSREP: wsrep::connect(gcomm://192.168.124.137,192.168.124.139) failed: 7
2018-04-26  3:59:56 140697295214848 [ERROR] Aborting

解決方案: 按照建議方式修改 vi /var/lib/mysql/grastate.dat

safe_to_bootstrap: 1

可以正常啟動(dòng)。

遇見的問題2:

[ERROR] Can't init tc log
[ERROR] Aborting

tc.log 文件有問題澄阳,調(diào)試環(huán)境直接刪除文件捷克解決問題:

cd /var/lib/mysql/
rm -f ib_logfile*  
rm -f tc.log  
rm -f localhost.pid

最嚴(yán)重的問題:由于是日志同步 rsync 拥知,每次停止實(shí)例都很可能會(huì)導(dǎo)致mysql 啟動(dòng)失敗,很坑碎赢,不是一般的坑.

遇見的問題3: 備點(diǎn)加入集群一直失敗
原因:在生產(chǎn)環(huán)境中必須打開防火墻低剔,但是我只開放了 4567 和 針對(duì)指定ip開放3306 端口,導(dǎo)致加入集群失敗肮塞,需要開放 3306, 4444, 4567, 4568 四個(gè)端口才可以正常啟動(dòng)

遇見問題4:

 Log file ./ib_logfile1 is of different size 5242880 bytes than other log files 27787264 bytes!
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[Note] Plugin 'FEEDBACK' is disabled.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting'

解決辦法:

  • 1襟齿、修改配置文件

    在[mysqld]下添加:

    innodb_log_file_size=50331648

  • 2、刪除ib_logfile文件

    mv ib_logfile0 ib_logfile0_bak

    mv ib_logfile1 ib_logfile1_bak

遇見問題5:

pam_unix(su-l:session): session opened for user root by (uid=0)
pam_unix(su-l:session): session closed for user root
[b7929b] <passwd=-1> ldap_result() failed: Can't contact LDAP server: Connection reset by peer
[b7929b] <passwd=-1> ldap_abandon() failed to abandon search: Can't contact LDAP server: Transport endpoint is not connected
(to root) root on none
Started Session c127 of user root.

遇見這個(gè)問題枕赵,我只想說一句 Fuck 道行太淺安缕邸!?酱堋开皿!解決辦法:

sudo systemctl start mariadb.service

啟動(dòng)順序

方法1:

必須先:

/usr/sbin/mysqld --wsrep-new-cluster --user=root

才可以使用 systemctl 命令啟動(dòng)從節(jié)點(diǎn)。

方法2:

第一個(gè)需要啟動(dòng)的節(jié)點(diǎn)配置文件這樣填寫:

wsrep_cluster_address="gcomm://"

不指定集群地址篮昧,這樣就可以使用 systemctl start mariadb.service

注意事項(xiàng):這個(gè)非常非常重要 在停機(jī)維護(hù)的時(shí)候赋荆,必須最后一個(gè)停止主節(jié)點(diǎn),否則主節(jié)點(diǎn)會(huì)啟動(dòng)失敗恋谭,然后只能啟動(dòng)最后一個(gè)關(guān)閉的節(jié)點(diǎn)作為此次啟動(dòng)的主節(jié)點(diǎn)糠睡。

http://blog.51cto.com/xianglinhu/1676039 寫道:

其中需要注意的地方有wsrep_cluster_address=gcomm://這條命令,gcomm://是一個(gè)特殊的參數(shù)疚颊,在啟動(dòng)第一臺(tái)數(shù)據(jù)庫(kù)時(shí)需要使用這個(gè)參數(shù)來啟動(dòng)狈孔,否則會(huì)啟動(dòng)失敗,后面的節(jié)點(diǎn)使用wsrep_cluster_address="gcomm://192.168.1.162,192.168.1.163,192.168.1.164"這個(gè)參數(shù)來啟動(dòng)數(shù)據(jù)庫(kù)材义。當(dāng)?shù)谝慌_(tái)數(shù)據(jù)庫(kù)需要重啟時(shí)需要切換到wsrep_cluster_address="gcomm://192.168.1.162,192.168.1.163,192.168.1.164"這個(gè)參數(shù)來啟動(dòng)才能加入到集群中均抽。這樣講有點(diǎn)抽象,換一種方式來講就是最開始啟動(dòng)集群的第一臺(tái)服務(wù)器時(shí)將wsrep_cluster_address="gcomm://192.168.1.162,192.168.1.163,192.168.1.164"這一行注釋掉其掂,使用下面那個(gè)參數(shù)來啟動(dòng)油挥,后面的節(jié)點(diǎn)注釋掉wsrep_cluster_address=gcomm://這個(gè)參數(shù)啟動(dòng)數(shù)據(jù)庫(kù),加入到集群中來。當(dāng)集群全部起來以后萬一第一臺(tái)數(shù)據(jù)庫(kù)要重啟時(shí)將下面那條參數(shù)注釋掉深寥,開啟上面那條參數(shù)攘乒。這樣就能加入集群中來。至于wsrep_sst_auth=wsrep_sst-user:password這個(gè)參數(shù)就是我們之前設(shè)定的用來同步的用戶名和密碼惋鹅。

實(shí)際運(yùn)行發(fā)現(xiàn)的問題:


mysql_celery.png

上圖的應(yīng)用場(chǎng)景是celery 做分布式任務(wù)则酝,并寫入到mysql中,中間停頓前面部分是啟用雙活數(shù)據(jù)庫(kù)之前的執(zhí)行速度闰集,后面部分是mysql 單點(diǎn)執(zhí)行速度沽讹,大致可以看出運(yùn)行時(shí)間大概延長(zhǎng)了一倍,是不是可以得出這樣的結(jié)論:雙活數(shù)據(jù)庫(kù)寫入吞吐量降低了呢武鲁?尚未測(cè)試爽雄,待閑來測(cè)一下吧

優(yōu)缺點(diǎn):http://blog.sina.com.cn/s/blog_548c8a830102vrgw.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市沐鼠,隨后出現(xiàn)的幾起案子挚瘟,更是在濱河造成了極大的恐慌,老刑警劉巖迟杂,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刽沾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡排拷,警方通過查閱死者的電腦和手機(jī)侧漓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來监氢,“玉大人布蔗,你說我怎么就攤上這事±烁” “怎么了纵揍?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)议街。 經(jīng)常有香客問我泽谨,道長(zhǎng),這世上最難降的妖魔是什么特漩? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任吧雹,我火速辦了婚禮,結(jié)果婚禮上涂身,老公的妹妹穿的比我還像新娘雄卷。我一直安慰自己,他們只是感情好蛤售,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布丁鹉。 她就那樣靜靜地躺著妒潭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪揣钦。 梳的紋絲不亂的頭發(fā)上雳灾,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音拂盯,去河邊找鬼佑女。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谈竿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播摸吠,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼空凸,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了寸痢?” 一聲冷哼從身側(cè)響起呀洲,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎啼止,沒想到半個(gè)月后道逗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡献烦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年滓窍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巩那。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吏夯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出即横,到底是詐尸還是另有隱情噪生,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布东囚,位于F島的核電站跺嗽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏页藻。R本人自食惡果不足惜桨嫁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惕橙。 院中可真熱鬧瞧甩,春花似錦、人聲如沸弥鹦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至朦促,卻和暖如春膝晾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背务冕。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工血当, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人禀忆。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓臊旭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親箩退。 傳聞我的和親對(duì)象是個(gè)殘疾皇子离熏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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