超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了。本文主要侧重实操,由于跟着百度前几页的搭建教程或多或少都有坑,先后配置逻辑矛盾的也有。终于,通过几个通宵的bug修复,反复验证,力求以最简洁的代码,最少的操做量,最直白的逻辑来完成集群的搭建。由于操做过程当中,网上对wsrep相关参数的介绍少之又少,因此最后特别写了完整版的参数说明,供搭建成功后,各类测试调试使用,对于这些参数有坑的地方,欢迎在底下留言,供你们参考,谢谢。html

对于mysql的集群方案,我以前总结过,详情点击查看,多图文,详细介绍mysql各个集群方案node

一,需求了解

Galera Cluster须要至少三个节点的服务器硬件。mysql

若是群集在单个交换机上运行,请使用三个节点。若是您的群集跨越多个交换机,请使用三个交换机。若是您的群集跨越网络,请使用三个网络。若是您的群集跨越数据中心,请使用三个数据中心。这样能够确保在网络中断的状况下,群集能够维护主组件。linux

1,硬体需求

对于服务器硬件,每一个节点至少须要如下组件:算法

  • 1 GHz单核CPU;
  • 512 MB RAM;
  • 100 Mbps网络链接;

注意:Galera Cluster可能会因为内存不足而在有限的硬件上运行时偶尔崩溃。为避免这种状况,请确保分配了足够的交换空间。sql

2,软件需求

对于软件,群集中的每一个节点至少须要如下条件:shell

  • 已安装Linux或FreeBSD操做系统;
  • 带有wsrep API补丁的MySQL或MariaDB服务器,已安装Galera复制插件。

注意:Galera Cluster的二进制安装软件包包括带有wsrep API补丁的数据库服务器。可是,从源构建时,必须手动应用此修补程序。数据库

二,准备服务器

在开始安装过程以前,须要完成一些任务觉得Galera Cluster准备服务器。您必须在集群中的每一个节点上执行如下步骤。bootstrap

1,配置SELinux

若是在服务器上启用了SELinux(加强安全性的Linux),则它可能会阻止mysqld执行所需的操做。您必须对SELinux禁用mysqld或对其进行配置,以容许mysqld运行外部程序并在非特权端口上打开侦听套接字,即非特权用户能够执行的操做。在这里我看了看它的状态 cat /etc/selinux/config,而后就直接把它给禁用了。centos

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

若服务器必需要启用SELinux,请查阅selinux和mysql

2,配置防火墙

接下来须要更新每一个节点上的防火墙设置,以便它们能够与群集通讯。具体执行方式取决于您的发行版和所使用的特定防火墙软件。在这里我看了看防火墙状态 firewall-cmd --state ,就直接把它关闭了。

systemctl stop firewalld.service
systemctl disable firewalld.service

有关为Galera Cluster设置防火墙以及其余用于在Linux和FreeBSD中配置数据包过滤的程序的详细信息,请参阅防火墙设置

3,禁用AppArmor

默认状况下,某些服务器(例如Ubuntu)包括AppArmor,这可能会阻止mysqld打开其余端口或运行脚本。 您必须禁用AppArmor或对其进行配置,以容许mysqld运行外部程序并在非特权端口上打开侦听套接字。在这里我就禁用AppArmor了。

ln -s /etc/apparmor.d/usr /etc/apparmor.d/disable/.sbin.mysqld

输入效果以下所示,由于我是centos,不是Ubuntu的,因此禁用APPArmor是不须要的操做,这里只是为了演示。

lgx_211

三,安装Galera群集

1,依赖包准备

安装过程十有八九会报错,会提示依赖检测失败,请按照提示,下载相关依赖。这是我依据下面的安装顺序进行安装而报错,我为此逐个而安装的依赖。个人centos是刚安装的最简版,因此缺不少东西,你能够先把如下这些依赖安装完,再安装mysql cluster相关的。

yum -y install lsof net-tools perl socat openssl openssl-devel boost-devel

有个安装的文件和系统现有的有冲突,致使安装失败,卸载掉这个mariadb。

rpm -qa| grep mariadb
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

修改配置文件的时候,还有几个依赖包是被须要的,提早下载好

rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install rsync jemalloc
2,下载、安装

Galera Cluster由两部分组成:Galera复制库(galera-3)和使用写集复制(WSREP)API扩展的MySQL版本(mysql-wsrep)。

若因软件版本变化,致使没法下载,或者你不是centos系统,请自行访问http://releases.galeracluster.com,找到能够下载的对应的版本。

强烈建议安装顺序按照下面所示,逐个来,由于后面的安装须要依赖前面的安装。

wget http://releases.galeracluster.com/galera-3/centos/7/x86_64/galera-3-25.3.29-1.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-client-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-common-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-devel-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-libs-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-libs-compat-5.7-5.7.29-25.21.el7.x86_64.rpm
wget http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/mysql-wsrep-server-5.7-5.7.29-25.21.el7.x86_64.rpm

rpm -ivh mysql-wsrep-common-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-libs-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-client-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-libs-compat-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-server-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh mysql-wsrep-devel-5.7-5.7.29-25.21.el7.x86_64.rpm
rpm -ivh galera-3-25.3.29-1.el7.x86_64.rpm

最终效果以下所示

lgx_211

3,修改配置
vi /etc/my.cnf

打开配置文件,按 i 进入编辑模式,增长如下配置信息。

wsrep-provider=/usr/lib64/galera-3/libgalera_smm.so   # wsrep提供者,个人是在这个目录下

wsrep_cluster_name='mysql_cluster'  #集群的名字,必须是统一的
wsrep_cluster_address=gcomm://192.168.119.128,192.168.119.129,192.168.119.130  #集群中的其余节点地址

wsrep_node_name = node1              #该节点的名称
wsrep_node_address='192.168.119.128' #该节点的地址

wsrep_sst_method=rsync    # 集群使用rsync同步方式
wsrep_sst_auth=lgx:666666 # 集群同步的用户名密码

完成以上修改,Esc退出编辑模式,输入:wq 保存并退出。 相似一样的操做操做再来两次。最终效果以下所示

lgx_211
注意:每一个节点的 server-id,wsrep_node_name,wsrep_node_address 是不同的。

4,启动第一个节点

启动第一个节点之前,其节点的配置文件里面,不能配置其它节点的ip,即 wsrep_cluster_address=gcomm:// 这样就好了,不然会致使启动报错。待集群启动后,再修改它的配置文件,把其余节点的ip补充上去。

启动第一个节点,该命令会启动本机的 mysqld 服务,命令只在集群第一个节点启动时使用,由于该脚本中带有一个参数:–wsrep-new-cluster,表明新建集群。

/usr/bin/mysqld_bootstrap

查看mysqld服务状态,判断是否成功启动,并建立了新集群。

systemctl status mysqld

效果图以下所示

lgx_211

5,启动其它节点

逐个启动其它节点的服务,并查看是否启动成功。

systemctl start mysqld

systemctl status mysqld

能够看到,节点已经启动。

lgx_211

6,集群验证

由于数据库刚刚初始化,超级用户root是没有密码的,系统会给几个临时的root密码。再修改root密码时,须要你用其中一个临时密码确认一下,即红框所示。新输入的密码若不够复杂,会被安全缘由拒绝生效。

grep -i 'temporary password' /var/log/mysqld.log

mysqladmin -u root -p 'LGX_211_lgx'

lgx_211

如今用刚刚设置的root密码,来登陆某一台主机上的mysql,看看当前节点的数据库状态,再来看看集群的情况。

mysql -u root -p

show status like 'wsrep_local_state_comment';

show status like 'wsrep_cluster_size';

由红框能够看出,当前的节点是正常提供服务的状态,且与集群数据状态是一致的。由篮框可知,当前集群一共有三个节点。

lgx_211

Open:节点启动成功,尝试链接到集群

Primary: 节点已处于集群中,在新节点加入时,选取donor进行数据库同步时会产生的状态
Joiner: 节点处于等待接收或正在接收同步文件的状态
Joined: 节点完成数据同步,但还有部分数据不是最新的,在追赶与集群数据一致的状态
Synced: 节点正常提供服务的状态,表示当前节点数据状态与集群数据状态是一致的
Donor: 表示该节点被选为Donor节点,正在为新加进来的节点进行全量数据同步,此时该节点对客户端不提供服务

7,数据复制验证

在节点1, mysql -u root -p 登陆mysql,建立数据库,并建表,填充数据。

create database test;
use test;
create table t1(a int);
insert into t1 values(1);

以下所示

lgx_211
在节点2,也建一个表,填充数据。

use test;
create table t2(a int);
insert into t2 values(2);

同理,在节点3,也建一个表,填充数据。

use test;
create table t3(a int);
insert into t3 values(3);

而后,随机选一个节点,来查询刚刚输入的信息。

select t1.a,t2.a,t3.a from test.t1,test.t2,test.t3;

效果以下所示,在任一一个节点上能够查出刚刚在三个节点上输入的信息。

lgx_211
8,其它测试

单个节点挂掉不影响其它节点正常对外的读写操做。

增长节点,个人电脑已经没有条件在装一台虚拟机了。

四,wsrep配置一览

以前的配置文件是刚开始测试所必须的最简版。这里我汇总整理了全部的可配置项,供你上生产运营环境的时候,增长相关配置。

wsrep_auto_increment_control

若是设置为1(默认值),将根据集群的大小以及集群大小的变化自动调整auto_increment_increment和auto_increment_offset变量。 这样能够避免因为auto_increment而引发的复制冲突。 在主从环境中,能够设置为OFF。

wsrep_causal_reads

若是设置为ON(默认为OFF),则在整个集群中强制执行读取提交的特征。 若是主设备比从设备更快地应用事件,则二者可能会短暂地不一样步。 在将此变量设置为ON的状况下,从站将等待事件应用,而后再处理其余查询。 设置为ON也将致使更大的读取延迟。

wsrep_certification_rules

说明:要在集群中使用的认证规则。 可能的值为:
strict:可能会致使更多认证失败的更严格的规则。 例如,对于外键,若是不一样的节点大约在同一时间收到指向父表中同一行的无冲突插入,则可能致使认证失败
optimized:宽松的规则,容许更多的并发性,并减小更少的认证失败。

wsrep_certify_nonPK

说明:设置为“开”(默认值)时,将自动为没有一个表的表生成主键。 这对于并行应用是必需的,强烈建议对全部表使用。

wsrep_cluster_address

说明:启动时要链接的群集节点的地址,例如gcomm://192.168.0.1:1234?gmcast.listen_addr = 0.0.0.0:2345。 优良做法是以gcomm:// <node1或ip:port>,<node2或ip2:port>,<node3或ip3:port>的形式指定全部可能的群集节点。 指定一个空ip(gcomm://)将致使该节点启动新群集(不该在my.cnf文件中完成此操做,由于每次从新启动后,服务器将不会从新加入当前群集)。 在某些配置中,能够在运行时更改该变量,这将致使节点关闭与任何当前群集的链接,并链接至新地址。 若是指定端口,请注意这是Galera端口,而不是MariaDB端口。

wsrep_cluster_name

描述:集群的名称。 节点没法链接到名称不一样的集群,所以在同一集群中的全部节点上都必须相同。

wsrep_convert_LOCK_to_trx

说明:将LOCK / UNLOCK TABLES语句转换为BEGIN和COMMIT。 主要用于使较旧的应用程序与多主机设置一块儿使用,请谨慎使用,由于这可能会致使极大的写入集。

wsrep_data_home_dir

说明:wsrep提供程序将在其中存储其内部文件的目录。

wsrep_dbug_option

说明:用于将DBUG选项传递给wsrep提供程序。

wsrep_debug

说明:当设置为ON(默认为OFF)时,调试消息也将记录到错误日志中。

wsrep_desync

描述:当节点接收到的写集超出其可应用的数量时,事务将放入接收的队列中。 若是节点的接收队列等待应用的写入集过多(如gcs.fc_limit WSREP提供程序选项所定义),则该节点一般将使用Flow Control。 可是,当此选项设置为ON时,将为取消同步的节点禁用Flow Control。 取消同步的节点将一直处理接收到的队列,直到达到可管理的大小为止。 已取消同步的节点继续从群集中的其余节点接收写集。 群集中的其余节点不等待不一样步的节点遇上,所以,不一样步的节点可能甚至落在群集中的其余节点以后。 您能够经过检查wsrep_local_state_comment状态变量是否等于Donor / Desynced来检查节点是否被取消同步。

wsrep_dirty_reads

说明:默认状况下,当不与组同步时(wsrep_ready = OFF),节点将拒绝除SET和SHOW以外的全部查询。 若是wsrep_dirty_reads设置为1,则该节点将接受不更改数据的查询,例如SELECT查询(脏读),建立prepare语句等。

wsrep_drupal_282555_workaround

说明:若是设置为ON,则启用Drupal / MySQL / InnoDB错误#282555的解决方法。 这是一个错误,在某些状况下,将DEFAULT值插入到AUTO_INCREMENT列中时,可能会返回重复的键错误。

wsrep_forced_binlog_format

说明:一种二进制日志格式,它将覆盖全部会话二进制日志格式设置。

wsrep_gtid_domain_id

说明:此系统变量定义用于wsrep GTID模式的GTID域ID。
当wsrep_gtid_mode设置为ON时,全部Galera Cluster写集都将使用wsrep_gtid_domain_id代替gtid_domain_id。
当wsrep_gtid_mode设置为OFF时,将忽略wsrep_gtid_domain_id,以实现向后兼容。
为了使此模式生成一致的GTID,还须要知足一些其余要求。

wsrep_gtid_mode

说明:Wsrep GTID模式尝试使全部群集节点上的Galera Cluster写入集的GTID保持一致。 在SST期间,GTID状态最初会复制到联接节点。 若是您打算将Galera Cluster与MariaDB复制一块儿使用,则wsrep GTID模式可能会有所帮助。
当wsrep_gtid_mode设置为ON时,全部Galera Cluster写集都将使用wsrep_gtid_domain_id代替gtid_domain_id。
当wsrep_gtid_mode设置为OFF时,将忽略wsrep_gtid_domain_id,以实现向后兼容。
为了使此模式生成一致的GTID,还须要知足一些其余要求。

wsrep_gtid_seq_no

说明:内部服务器使用状况,手动设置WSREP GTID seqno。

wsrep_ignore_apply_errors

说明:若是设置,将忽略复制错误。

wsrep_load_data_splitting

说明:若是设置为ON(MariaDB 10.4.2和更低版本的默认设置),则LOAD DATA INFILE经过引入事务拆分来支持大数据文件。 该设置已在Galera 4中弃用,而且从MariaDB 10.4.3默认为OFF。

wsrep_log_conflicts

说明:若是设置为ON(默认为OFF),则会记录群集中发生冲突的MDL以及InnoDB锁的详细信息。

wsrep_max_ws_rows

说明:每一个写入集容许的最大行数。 在MariaDB Galera 10.0.27和MariaDB 10.1.17以前,此变量在内部被忽略,而且对节点没有影响。 从MariaDB Galera 10.0.27和MariaDB 10.1.17起,已添加了对此变量的支持,而且为了向后兼容,默认值已更改成0,这实际上容许写集为任意大小。

wsrep_max_ws_size

说明:每一个写入集容许的最大大小(以字节为单位)。 超出此限制的Writeset将被拒绝。 请注意,MariaDB 10.1.17和MariaDB Galera 10.0.27以及以前的版本容许将最大值设置为2GB以上,这被Galera拒绝。

wsrep_mysql_replication_bundle

说明:肯定分组在一块儿的复制事件的数量。 实验实现旨在在单个从站面临大量提交时间延迟时帮助解决瓶颈问题。 若是设置为0(默认值),则没有分组。

wsrep_node_address

说明:指定节点的网络地址,格式为ip address [:port]。 从MariaDB 10.1.8开始,支持IPv6。 节点的默认行为是拉取系统上第一个网络接口的地址和默认的Galera端口。 这种自动猜想可能不可靠,尤为是在如下状况下:
云部署
容器部署
具备多个网络接口的服务器。
运行多个节点的服务器。
网络地址转换(NAT)。
节点在多个区域中的群集。

wsrep_node_incoming_address

说明:这是节点用来侦听客户端链接的地址。 若是未指定地址或将其设置为AUTO(默认),则mysqld使用--bind-address或--wsrep-node-address,或尝试以相同顺序从可用网络接口列表中获取一个地址。

wsrep_node_name

描述:此节点的名称。 此名称能够在wsrep_sst_donor中用做首选供体。 请注意,群集中的多个节点能够具备相同的名称。

wsrep_notify_cmd

说明:每次节点状态或集群成员资格更改时要执行的命令。 可用于发出警报,配置负载均衡器等。 有关更多详细信息,请参见编码通知脚本页面。

wsrep_on

说明:是否启用wsrep复制。 若是全局值设置为OFF(MariaDB 10.1以来的默认值),则没法加载提供程序并加入集群中的节点。 若是仅将会话值设置为OFF,则该特定会话的操做不会在群集中复制,但其余会话和应用程序线程将照常继续。 变量的会话值不会影响节点的成员身份,所以,不管其值如何,节点都会不断从群集中的其余节点接收更新。 在MariaDB 10.1以前,即便该变量默认状况下为ON,其值也会根据是否已指定强制配置以打开Galera复制而自动调整。 从MariaDB 10.1开始,默认状况下将其设置为OFF,而且必须启用它才能启用Galera复制。

wsrep_OSU_method

说明:在线模式升级方法。 默认值为TOI,指定不带可选参数的设置将设置为RSU。
TOI:总订单隔离。 在每一个群集节点中,对于其余事务,将以相同的顺序处理DDL,从而确保数据的一致性。 可是,数据库的受影响部分将为整个群集锁定。
RSU:滚动架构升级。 DDL处理仅在节点上本地完成,用户须要在每一个节点上手动执行更改。 在进行处理以免阻塞其余节点的同时,该节点与群集的其他部分不一样步。 模式更改必须以与基于ROW的复制相同的方式向后兼容,以免在单个节点上完成DDL处理并从新开始复制时中断复制。

wsrep_patch_version

说明:Wsrep修补程序版本,例如wsrep_25.10。

wsrep_provider

描述:wsrep库的位置,一般在Debian和Ubuntu上为/usr/lib/libgalera_smm.so,在Red Hat / CentOS上一般为/usr/lib64/libgalera_smm.so。

wsrep_provider_options

说明:用分号(;)分隔的wsrep选项列表。

wsrep_recover

说明:若是在服务器启动时将其设置为ON,则服务器将恢复Galera应用的最新写入集的序列号,并将其输出到stderr,一般将其重定向到错误日志。 此时,服务器将退出。 能够将此序列号提供给wsrep_start_position系统变量。

wsrep_reject_queries

说明:设置为拒绝来自客户端链接的查询的变量,对维护颇有用。 该节点继续应用写集,可是客户端查询生成错误1047:未知命令错误。
NONE-未设置。 查询将照常处理。
ALL-来自客户端链接的全部查询将被拒绝,但现有的客户端链接将保留。
ALL_KILL来自客户端链接的全部查询将被拒绝,现有的客户端链接(包括当前的客户端链接)将被当即终止。

wsrep_replicate_myisam

说明:是否将复制MyISAM表的DML更新。 此功能仍处于试验阶段,不该在生产系统中使用。

wsrep_restart_slave

说明:若是设置为ON,则当节点从新加入群集时,复制从属会自动从新启动。

wsrep_retry_autocommit

说明:在将错误返回给客户端以前,因为群集范围内的冲突而致使重试自动提交的查询的次数。 若是设置为0,将不尝试重试,而值1(默认值)或更大将指定尝试的重试次数。 有助于使用自动提交来避免死锁的应用程序。

wsrep_slave_FK_checks

说明:若是设置为ON(默认值),则应用程序从属线程执行外键约束检查。

wsrep_slave_threads

说明:用于并行应用Galera写集的从属线程数。 Galera从属线程可以肯定能够安全并行应用哪些写集。 可是,若是您的群集节点彷佛常常出现一致性问题,那么将该值设置为1可能会解决此问题。 有关更多信息,请参见关于Galera复制:Galera从属线程。

wsrep_slave_UK_checks

说明:若是设置为ON,则应用程序从属线程执行辅助索引惟一性检查。

wsrep_sr_store

说明:用于流式复制片断的存储。

wsrep_sst_auth

描述:用于复制的用户名和密码。 若是wsrep_sst_method设置为rsync,则未使用,而对于其余方法,它的格式应为<user>:<password>。 内容在日志中以及使用SHOW VARIABLES查询值时被屏蔽。

wsrep_sst_donor

说明:以逗号分隔的列表(从5.5.33起)或做为捐赠者的服务器名称(按照wsrep_node_name)或状态转移的源(按优先顺序排列)。一般,施主选择算法更喜欢一个施主,该施主只能将丢失的事务(IST)转移到合并节点,而不是完整状态(SST)。所以,它首先在给定的施主列表中寻找一个具备IST功能的节点,而后是集群中的其他节点。若是在指定的施主列表以外找到多个候选节点,则首选与链接器位于同一段(gmcast.segment)中的节点。若是集群中的现有节点都没法经过IST服务丢失的事务,则该算法会继续寻找合适的节点以传输整个状态(SST)。首先查看供体列表中指定的节点(不考虑其段)。若是仍然找不到合适的施主,则仅在施主列表具备“终止逗号”的状况下,检查其他施主节点的适用性。请注意,无状态节点(Galera仲裁器)永远不能成为施主。

wsrep_sst_donor_rejects_queries

说明:若是设置为ON(默认为OFF),施主节点将拒绝传入的查询,并返回UNKNOWN COMMAND错误代码。 能够用于通知负载均衡器节点不可用。

wsrep_sst_method

说明:用于进行状态快照传输(SST)的方法

wsrep_sst_receive_address

说明:这是群集中其余节点(供体)链接以发送状态转移更新的地址。 若是未指定地址或将其设置为AUTO(默认),则mysqld使用--wsrep_node_address的值做为接收地址。 可是,若是未设置--wsrep_node_address,它将使用--bind-address中的地址,或尝试以相同顺序从可用网络接口列表中获取一个地址。 注意:将其设置为localhost将使在其余主机上运行的节点没法到达该节点。

wsrep_start_position

说明:节点应使用的起始位置,格式为:UUID:seq_no。 可使用wsrep_recover恢复用于该位置的正确值。

wsrep_strict_ddl

说明:若是设置,则拒毫不支持Galera复制的受影响表上的DDL。

wsrep_sync_wait

说明:设置此变量可确保在执行由值指定的类型的操做以前进行因果关系检查,以确保在彻底同步的节点上执行该语句。进行检查时,将在节点上阻止新查询,以使服务器可以遇上群集中进行的全部更新,直到检查开始为止。到达后,将在节点上执行原始查询。这会致使更高的延迟。请注意,当wsrep_dirty_reads设置为ON时,wsrep_sync_wait的值将变得可有可无。样本用法(对于必须具备最新数据的关键读取)SET SESSION wsrep_sync_wait = 1;选择 ...; SET SESSION wsrep_sync_wait = 0;
0-禁用(默认)
1-读取(选择和开始/开始事务)。直到MariaDB 10.2.8,MariaDB 10.1.26,MariaDB Galera 10.0.31和MariaDB Galera 5.5.56(也显示)。这与wsrep_causal_reads = 1相同。
2-更新和删除;
3-读取,更新和删除;
4-插入和更换;
5-读取,插入和替换;
6-更新,删除,插入和替换;
7-读取,更新,删除,插入和替换;
8-显示(来自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
9-读取和显示(来自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
10-更新,删除和显示(来自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
11-读取,更新,删除和显示(来自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
12-插入,替换和显示(来自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
13-读取,插入,替换和显示(来自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
14-更新,删除,插入,替换和显示(来自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)
15-读取,更新,删除,插入,替换和显示(来自MariaDB 10.2.9,MariaDB 10.1.27,MariaDB Galera 10.0.32,MariaDB Galera 5.5.57)

wsrep_trx_fragment_size

描述:用于流复制的事务片断的大小(以wsrep_trx_fragment_unit指定的单位度量)

wsrep_trx_fragment_unit

说明:流复制事务片断大小的单位:字节:交易的Binlog事件缓冲区大小(以字节为单位)行:受事务影响的行数语句:在多语句事务中执行的SQL语句数

相关文章
相关标签/搜索