由於Galera
集羣須要至少3個節點組成集羣,纔不會發生腦裂情況。html
Galera
集羣部署推薦的是至少三個實例或三個節點或三個數據中心等等。node
若是添加一個節點會成本過高,好比添加多一臺數據庫服務器,那你能夠選擇使用Galera Arbitrator
。Galera Arbitrator
就是集羣中的一份子,能夠參與投票,但不參與實際的複製。web
注意:雖然
Galera Arbitrator
不參與複製,但它和其餘節點同樣也會接受數據。你必須確保他的網絡鏈接。shell
Galera Arbitrator
有兩個用途:數據庫
當集羣爲偶數節點時,它的加入以免腦裂的發生。segmentfault
同時它可以用於備份,例如快照功能。服務器
若是一個數據中心失敗或者是斷開鏈接,而且它與Galera Arbitrator
是接連的話,那Galera Arbitrator
就會做爲中間件的擴展。例如node1
與node2
是斷開鏈接的,此時若node1
與Galera Arbitrator
、node2
與Galera Arbitrator
鏈接的話,那Galera Arbitrator
做爲中間件將會爲node1
與node2
鏈接通訊。網絡
儘管
Galera Arbitrator
不存儲數據,但它必須能夠看到全部的流量的傳輸複製。若是Galera Arbitrator
放在一個網絡環境較差的地方,那它鏈接到集羣的時候,可能會致使集羣執行或性能降低。socket
若是Galera Arbitrator
失敗的話,它不會影響集羣的正常操做。你能夠將一個新的實例加入到集羣中,能夠有多個實例運行在集羣中。性能
有關
Galera Arbitrator
備份的設置,可參考Galera 集羣備份
Galera Arbitrator
在Galera
集羣中是一個單獨的進程。這意味着,你須要獨立啓動它。這也意味着你不能經過數據庫配置文件的方式來啓動,好比不能經過my.cnf
啓動。
Galera Arbitrator
在啓動的時候,腳本會在無人使用的進程中執行sudo
聲明,有一個特定問題在Fedora和其餘版本的Linux中,這默認用戶沒有操做sudo
配置的權限。要修正這個問題須要編輯/etc/sudoers
中的Defaults requiretty
,把這個註釋掉便可。這樣就能夠防止操做系統阻塞Galera Arbitrator
。
當開始經過shell
命令執行Galera Arbitrator
的時候,首先你須要經過命令行參數配置。例如:
$ garbd --group=example_cluster \ --address="gcomm://192.168.1.1,192.168.1.2,192.168.1.3" \ --option="socket.ssl_key=/etc/ssl/galera/server-key.pem;socket.ssl_cert=/etc/ssl/galera/server-cert.pem;socket.ssl_ca=/etc/ssl/galera/ca-cert.pem;socket.ssl_cipher=AES128-SHA""
若是你使用SSL
的方式,則你須要輸入密碼。不然會有terminate called after throwing an instance of ‘gu::NotSet’
的SSL
提示。
若是你不想每次經過shell
方式啓動Galera Arbitrator
,那你能夠自定義配置文件中執行。
例如配置文件以下:
# arbtirator.config group = example_cluster address = gcomm://192.168.1.1,192.168.1.2,192.168.1.3
當你開始啓動Galera Arbitrator
,使用--cfg
選項。
例如:
$ garbd --cfg /path/to/arbitrator.config
更多的參數,可用過--help來查看幫助。
$ garbd --help Usage: garbd [options] [group address] Configuration: -d [ --daemon ] Become daemon -n [ --name ] arg Node name -a [ --address ] arg Group address -g [ --group ] arg Group name --sst arg SST request string --donor arg SST donor name -o [ --options ] arg GCS/GCOMM option list -l [ --log ] arg Log file -c [ --cfg ] arg Configuration file Other options: -v [ --version ] Print version -h [ --help ] Show help message
除了標準的配置,Galera
集羣中任何配置,均可用於Galera Arbitrator
,除了那些repl
前綴的命令。
當你從shell
啓動的話,你可使用 --option
來設置參數。
更多
Galera Arbitrator
參數可參考Galera 參數
當開始Galera Arbitrator
服務時,不管你使用init
或者systemd
,經過shell
命令,指定不一樣的配置文件,來啓動不用的服務,以實現靈活啓動。
# Copyright (C) 2013-2015 Codership Oy # This config file is to be sourced by garbd service script. # A space-separated list of node addresses (address[:port]) in the cluster: GALERA_NODES="192.168.1.1:4567 192.168.1.2:4567" # Galera cluster name, should be the same as on the rest of the node. GALERA_GROUP="example_wsrep_cluster" # Optional Galera internal options string (e.g. SSL settings) # see http://galeracluster.com/documentation-webpages/galeraparameters.html GALERA_OPTIONS="socket.ssl_cert=/etc/galera/cert/cert.pem;socket.ssl_key=/$" # Log file for garbd. Optional, by default logs to syslog LOG_FILE="/var/log/garbd.log"
爲了讓Galera Arbitrator
使用配置文件啓動,須要你把他放到系統配置文件中,因操做系統發行版而異,而放到不一樣的地方,一般是放在/etc
下。
一般位置:
/etc/defaults/
/etc/init.d/
/etc/systemd/
/etc/sysconfig/
檢查你的發行版的來肯定配置文件放在哪裏。
一旦你把配置文件放到對的地方,你能夠用garb
命令來啓動服務。
# service garb start 或者 # systemctl start garb
以後它會執行配置文件裏面設置的參數來運行對集羣的監聽。
http://www.javashuo.com/article/p-cccrbkmf-kv.html原創文章,版權全部,轉載請註明出處