由于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原创文章,版权全部,转载请注明出处