溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行mysql的galera_cluster安裝配置

發(fā)布時間:2021-10-25 16:37:47 來源:億速云 閱讀:368 作者:柒染 欄目:MySQL數(shù)據(jù)庫

本篇文章為大家展示了如何進(jìn)行mysql的galera_cluster安裝配置,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

本次試驗都是用rsync同步的,xtrabackup第三個節(jié)點起不來,而且在做將數(shù)據(jù)文件全部刪除恢復(fù)時xtrabackup不能恢復(fù)
SST :全量恢復(fù)
IST : 增量恢復(fù)

注意事項:
1、使用Galera必須要給MySQL-Server打wsrep補丁??梢灾苯邮褂霉俜教峁┑囊呀?jīng)打好補丁的MySQL安裝包,如果服務(wù)器上已經(jīng)安裝了標(biāo)準(zhǔn)版MYSQL,需要先卸載再重新安裝。卸載前注意備份數(shù)據(jù)。
2、MySQL/Galera集群只支持InnoDB存儲引擎。如果你的數(shù)據(jù)表使用的MyISAM,需要轉(zhuǎn)換為InnoDB,否則記錄不會在多臺復(fù)制。可以在備份老數(shù)據(jù)時,為mysqldump命令添加–skip-create-options參數(shù),這樣會去掉表結(jié)構(gòu)的聲明信息,再導(dǎo)入集群時自動使用InnoDB引擎。不過這樣會將AUTO_INCREMENT一并去掉,已有AUTO_INCREMENT列的表,必須在導(dǎo)入后重新定義。
3、MySQL 5.5及以下的InnoDB引擎不支持全文索引(FULLTEXT indexes),如果之前使用MyISAM并建了全文索引字段的話,只能安裝MySQL 5.6 with wsrep patch。
4、所有數(shù)據(jù)表必須要有主鍵(PRIMARY),如果沒有主鍵可以建一條AUTO_INCREMENT列。
5、MySQL/Galera集群不支持下面的查詢:LOCK/UNLOCK TABLES,不支持下面的系統(tǒng)變量:character_set_server、utf16、utf32及ucs2。
6、數(shù)據(jù)庫日志不支持保存到表,只能輸出到文件(log_output = FILE),不能設(shè)置binlog-do-db、binlog-ignore-db。
7、跟其他集群一樣,為了避免節(jié)點出現(xiàn)腦裂而破壞數(shù)據(jù),建議Galera集群最低添加3個節(jié)點。
8、在高并發(fā)的情況下,多主同時寫入時可能會發(fā)生事務(wù)沖突,此時只有一個事務(wù)請求會成功,其他的全部失敗??梢栽趯懭?更新失敗時,自動重試一次,再返回結(jié)果。
9、節(jié)點中每個節(jié)點的地位是平等的,沒有主次,向任何一個節(jié)點讀寫效果都是一樣的。實際可以配合VIP/LVS或HA使用,實現(xiàn)高可用性。
10、如果集群中的機器全部重啟,如機房斷電,第一臺啟動的服務(wù)器必須以空地址啟動:mysqld_safe –wsrep_cluster_address=gcomm:// >/dev/null &


yum install libaio gcc gcc-c++ boost-devel scons check-devel openssl-devel


1、# cat /etc/hosts
172.16.100.131   node1
172.16.100.224   node2
172.16.99.161 node3


2、修改文件描述符65535
# vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535


3、# vim /etc/sysctl.conf 
fs.file-max=655350
net.ipv4.ip_local_port_range = 1025 65000
net.ipv4.tcp_tw_reuse = 1

# sysctl -p


4、安裝percona xtrabackup備份工具

如二進(jìn)制安裝的
# tar zxvf percona-xtrabackup-2.3.2-Linux-x86_64.tar.gz
# cd percona-xtrabackup-2.3.2-Linux-x86_64/bin/
# cp -a * /usr/bin/
rpm則略


5、下載地址
Codership下載地址:
http://releases.galeracluster.com/binary/mysql-wsrep-5.6.31-25.16-linux-x86_64.tar.gz
# tar xvfz mysql-wsrep-5.6.31-25.16-linux-x86_64.tar.gz 
# mv mysql-wsrep-5.6.31-25.16-linux-x86_64 /usr/local/mysql


6、安裝Galera復(fù)制插件
https://launchpad.net/galera/3.x/25.3.5/+download/galera-25.3.5-src.tar.gz
tar zxvf galera-*
cd galera-*
scons
cp garb/garbd /usr/local/mysql/bin/
cp libgalera_smm.so /usr/local/mysql/lib/plugin/
注:scons yum源中沒有找到,下載的tar包
# python setup.py install  


7、
# vim /etc/my.cnf
[mysqld]
server_id=129
datadir=/data/galera
socket=/tmp/mysql.sock
user=mysql
skip-external-locking
skip-name-resolve
character-set-server = utf8
###########################################################
##Galera Cluster
wsrep_provider =/usr/local/mysql/lib/plugin/libgalera_smm.so      ----設(shè)置galera類庫
#wsrep_cluster_address="gcomm://172.16.100.131,172.16.100.224,172.16.99.161"    每個節(jié)點的ip地址
#wsrep_provider_options="gcache.size=4G"     ----類似于緩存的大小,增量恢復(fù)都靠這個,默認(rèn)128M
wsrep_cluster_name=MariaDB Galera Cluster     ------集群名字,隨便起
wsrep_sst_auth=admin:123456                   ------同步的用戶名密碼, 必須是all權(quán)限
#wsrep_sst_method=xtrabackup-v2           -------同步方式,還有mysqldump和rsync
wsrep_sst_method=rsync
#wsrep_sst_method=mysqldump
wsrep_node_name=172.16.100.224            ------節(jié)點名稱,可以是ip或者服務(wù)器名字(每個節(jié)點的名稱不一樣)
wsrep_slave_threads=2          -------開啟并行復(fù)制線程,根據(jù)CPU核數(shù)設(shè)置
wsrep_on=ON           --------開啟全同步復(fù)制模式
binlog_format   =  ROW    必須為row模式
innodb_flush_log_at_trx_commit = 0    ----因為Galera Cluster的節(jié)點恢復(fù)是通過遠(yuǎn)端節(jié)點,這里為了性能考慮,設(shè)置為0,即事務(wù)提交每隔1秒刷盤
innodb_autoinc_lock_mode=2      ------將主鍵自增模式修改為交叉模式
query_cache_size = 0   ------ 關(guān)閉查詢緩存


8.初始化
# cd /usr/local/mysql/scripts/
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/galera


9.第一個節(jié)點啟動
 ./mysqld_safe --user=mysql --wsrep-cluster-address="gcomm://" &
注:--wsrep-new-cluster         第一次啟動要加上--wsrep-new-cluster參數(shù),以后再重啟不用加了(不確定加不加,反正都能起來)
進(jìn)入數(shù)據(jù)庫
mysql> grant all on *.* to admin@'%' identified by '123456';
必須是all權(quán)限


第二個節(jié)點和第三個節(jié)點就正常啟動就好了,有幾個節(jié)點就添加就好了
./mysqld_safe --user=mysql --wsrep-cluster-address="gcomm://172.16.100.131:4567,172.16.100.224:4567" &
./mysqld_safe --user=mysql --wsrep-cluster-address="gcomm://172.16.100.131:4567,172.16.99.161:4567"  &
進(jìn)入數(shù)據(jù)庫查看
mysql> show status like '%ws%';
wsrep_cluster_size           | 3 
wsrep_cluster_status         | Primary
wsrep_ready                  | ON
看到這幾個就沒問題了

在查看一下admin用戶是否自動創(chuàng)建了

注:要使用xtrabackup做同步需要安裝lsof socat tar    其中socat我的yum源中沒有找到
   下載地址:
http://www.dest-unreach.org/socat/download/socat-2.0.0-b9.tar.gz
# tar xvrz socat-2.0.0-b9.tar.gz
# cd socat-2.0.0-b9
#./configure
#make && make install
在重啟第二個節(jié)點和第三個節(jié)點,第二個起來了,第三個起不來了
報錯如下:
2016-07-29 01:09:36 30877 [Note] WSREP: Member 0.0 (172.16.99.161) requested state transfer from '*any*'. Selected 1.0 (172.16.100.131)(SYNCED) as donor.
2016-07-29 01:09:36 30877 [Note] WSREP: Shifting PRIMARY -> JOINER (TO: 4)
2016-07-29 01:09:36 30877 [Note] WSREP: Requesting state transfer: success, donor: 1
2016-07-29 01:09:36 30877 [Warning] WSREP: 1.0 (172.16.100.131): State transfer to 0.0 (172.16.99.161) failed: -2 (No such file or directory)
2016-07-29 01:09:36 30877 [ERROR] WSREP: gcs/src/gcs_group.c:gcs_group_handle_join_msg():723: Will never receive state. Need to abort.
2016-07-29 01:09:36 30877 [Note] WSREP: gcomm: terminating thread
2016-07-29 01:09:36 30877 [Note] WSREP: gcomm: joining thread
2016-07-29 01:09:36 30877 [Note] WSREP: gcomm: closing backend
2016-07-29 01:09:36 30877 [Note] WSREP: view(view_id(NON_PRIM,0ee11156-54e6-11e6-b16e-a303ff8a662b,11) memb {
        0ee11156-54e6-11e6-b16e-a303ff8a662b,0
} joined {
} left {
} partitioned {
        4d838aa2-5633-11e6-ba70-fb0ade4193cd,0
        d1533158-6a9f-11e6-bea7-7fa18ade38f5,0
})
2016-07-29 01:09:36 30877 [Note] WSREP: view((empty))
2016-07-29 01:09:36 30877 [Note] WSREP: gcomm: closed
2016-07-29 01:09:36 30877 [Note] WSREP: /usr/local/mysql/bin/mysqld: Terminated.
160729 01:09:36 mysqld_safe mysqld from pid file /data/galera/zabbixserver.pid ended
具體原因不明,最后用的rsyc的同步方式進(jìn)行同步


10、測試
用xtrabackup不行,全都換了rsync了
將第三個節(jié)點的數(shù)據(jù)文件刪除掉,在配合文件中指定從哪個節(jié)點恢復(fù) 在my.cnf中添加wsrep_sst_donor=172.16.100.224(從第二個節(jié)點恢復(fù)),重啟,沒有問題??慈罩尽?br/>

上述內(nèi)容就是如何進(jìn)行mysql的galera_cluster安裝配置,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI