GALERA ARBITRATOR

因为Galera集群需要至少3个节点组成集群,才不会发生脑裂状况。

Galera集群部署推荐的是至少三个实例或三个节点或三个数据中心等等。

如果添加一个节点会成本太高,比如添加多一台数据库服务器,那你可以选择使用Galera Arbitrator。Galera Arbitrator就是集群中的一份子,可以参与投票,但不参与实际的复制。

注意:虽然Galera Arbitrator不参与复制,但它和其他节点一样也会接受数据。你必须确保他的网络连接。

Galera Arbitrator有两个用途:

当集群为偶数节点时,它的加入以避免脑裂的发生。

同时它能够用于备份,例如快照功能。

如果一个数据中心失败或者是断开连接,并且它与Galera Arbitrator是接连的话,那Galera Arbitrator就会作为中间件的扩展。例如node1与node2是断开连接的,此时若node1与Galera Arbitrator、node2与Galera Arbitrator连接的话,那Galera Arbitrator作为中间件将会为node1与node2连接通信。

尽管Galera Arbitrator不存储数据,但它必须可以看到所有的流量的传输复制。如果Galera Arbitrator放在一个网络环境较差的地方,那它连接到集群的时候,可能会导致集群执行或性能下降。

如果Galera Arbitrator失败的话,它不会影响集群的正常操作。你可以将一个新的实例加入到集群中,可以有多个实例运行在集群中。

有关Galera Arbitrator备份的设置,可参考Galera 集群备份

STARTING GALERA ARBITRATOR

Galera Arbitrator在Galera集群中是一个单独的进程。这意味着,你需要独立启动它。这也意味着你不能通过数据库配置文件的方式来启动,比如不能通过my.cnf启动。

Galera Arbitrator在启动的时候,脚本会在无人使用的进程中执行sudo声明,有一个特定问题在Fedora和其他版本的Linux中,这默认用户没有操作sudo配置的权限。要修正这个问题需要编辑/etc/sudoers中的Defaults requiretty,把这个注释掉即可。这样就可以防止操作系统阻塞Galera Arbitrator。

Starting Galera Arbitrator from the Shell

当开始通过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 参数

Starting Galera Arbitrator as a Service

当开始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

之后它会执行配置文件里面设置的参数来运行对集群的监听。

mysql脑裂_GALERA ARBITRATOR - 数据库多主集群对应脑裂的解决方案相关推荐

  1. HDFS High Availability(HA)高可用、单点故障、主备集群、脑裂问题、数据同步问题、HDFS HA解决方案—QJM

    HDFS High Availability(HA)高可用 1.1 High Availability背景知识 1.1.1 单点故障.高可用 单点故障(英语:single point of failu ...

  2. 搭建pxc集群时需要先安装mysql么_完美起航-高可用MySQL数据库之PXC集群

    高可用MySQL数据库之PXC集群 前言 在上一篇文章介绍了时下流行的几种数据库产品后(公众号发送"NewSQL"查看),有不少小伙伴表示对自动集群的数据库感兴趣,特别是Cockr ...

  3. [转]HA高可用集群中“脑裂“问题解决

    什么是脑裂(split-brain) 在"双机热备"高可用(HA)系统中,当联系两个节点的"心跳线"断开时(即两个节点断开联系时),本来为一个整体.动作协调的H ...

  4. 高可用集群的脑裂问题

    本文来说下集群的脑裂问题 文章目录 什么是脑裂(split-brain) 集群脑裂产生的原因 如何预防HA集群脑裂 什么是Fence设备 本文小结 什么是脑裂(split-brain) 在" ...

  5. mysql群集配置_MySQL主主集群配置

    一.主主复制: Mysql主主集群中,2台服务器之间没有明显的地位差距, 两者都可以同步对方的内容 一般的格局如下图: 二.实现思路: 1.两台服务器都设置上二进制日志和relay日志: #给服务器命 ...

  6. mysql如何管理innodb元数据_MySQL 8 InnoDB 集群管理

    使用 dba.checkInstanceConfiguration() 在添加实例到集群中前,使用该方法检查实例配置是否满足InnoDB 集群要求. 使用 dba.configureLocalInst ...

  7. 高一致性分布式galera cluster(多主)集群

    何谓Galera Cluster?就是集成了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用方案,目前Galera Cluster有两个版本,分别是Percona Xtr ...

  8. 达梦7数据库数据守护集群 技术方案

    达梦数据库数据守护集群 技术方案 目录 1 DM7数据守护集群部署实施流程 3 1.1 流程 3 1.2 系统架构图 3 1.3 网络拓扑图 4 2 部署规划 4 2.1 路径规划 4 2.2 实例规 ...

  9. Moebius数据库多活集群

    背景 数据库是信息化的基石,支撑着整个业务系统,发挥着非常重要的作用,被喻为"IT的心脏".因此,让数据库安全.稳定.高效地运行已经成为IT管理者必须要面对的问题.数据库在底层架构 ...

最新文章

  1. Shell脚本头定义
  2. Java打造一款SSH客户端,而且已开源
  3. Python中相见恨晚的技巧
  4. 条件分支结构c语言,决定分支的条件一般是什么表达?
  5. idea2019配置gradle详解_Java学习之——Gradle的安装配置、IDEA中创建Gradle的Java项目...
  6. .NET与java的MVC模式(3):ASP.NET 页生命周期概述
  7. Python 批量修改图片
  8. php7的redis和yaf的扩展安装
  9. opencv 分割边界_电影观众:场景边界分割
  10. python web前端开发面试_面试前端,听听别人怎么说!
  11. TensorFlow应用实战 | 编写训练的python文件
  12. Git master branch has no upstream branch的解决
  13. 第16课:郭盛华课程PHP文件打开,读取
  14. Qt获取键盘按键ctrl和alt以及shift按键按下和松开
  15. (组合数+快速幂+lucas+费马小引理)acwing 887. 求组合数 III
  16. Android App的设计架构:MVC,MVP,MVVM与架构经验谈
  17. 疫情下失业开发即时通讯软件(仿微信)-优化服务器端吞吐量
  18. word2vec训练中文词向量
  19. 2021年最新WHQL认证申请流程
  20. (转)svn中更新工程出现如下错误:Working copy not locked; this is probably a bug, please report...

热门文章

  1. 教你让Ubuntu中文程序远离乱码
  2. 天河3号超级计算机内从,自主新超算天河3号曝光:处理器部分抛弃Intel
  3. 一文读懂最新区块链游戏资产平台 Enjin Platform
  4. 1086 就不告诉你 (15分)
  5. 4412学习日记 - DDR3初始化
  6. 全知科技CEO方兴:数据流动时代大数据风险是大数据安全的核心
  7. error: invalid initialization of reference of type ‘std::string’ from expression of type ‘const s
  8. 对温州服装企业创名牌模式的分析(摘)
  9. 【计算机毕业设计】基于jsp网上书店(源代码+论文)
  10. JAVA封装|继承|多态