Centos7 mariadb 10.5集群式部署

一二三5年前 (2020-11-28)Centos538

1、环境准备

准备三台虚拟机,分别安装CentOS7-7.7。

服务器A:10.88.1.14 node1

服务器B:10.88.1.15 node2

服务器C:10.88.1.16 node3

三台虚机上关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

三台虚机上关闭selinux:

setenforce 0

修改/etc/selinux/config,设置SELINUX=disabled,确保重启后也生效。

三台节点间配置通信

vim /etc/hosts

10.88.1.14 node1

10.88.1.15 node2

10.88.1.16 node3

2、安装mariadb 10.5

默认centos的源里不带mariadb 10.5,需要自己配置,创建/etc/yum.repos.d/mariadb.repo文件,这里配置的其他安装有源。内容如下:

vim /etc/yum.repos.d/MariaDB.repo

添加以下内容

[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB 
gpgcheck=1

执行

yum clean all

yum makecache

用yum安装:

yum install MariaDB-server MariaDB-client galera-4 -y

如果之前配置过其它源导致安装失败,可以先清理一下再重试:

yum clean metadata

3、三台数据库服务器做同样操作。

systemctl enable mariadb #设置开机启动

4、配置mariadb 三台同样操作

启动mariadb:

systemctl start mariadb


可按需执行初始化:

mysql_secure_installation

mariadb默认仅允许root本地登录,需要手工创建root远程管理权限,可以新建,也可以修改当前root,新建的话:密码 RDvYAKSLbDb7#1225

mysql -uroot -p
use mysql;
create user root@'%' identified by 'RDvYAKSLbDb7#1225';
flush privileges;

或者修改已有root的host:

mysql -u root -p

use mysql

update user set host='%' where user='root' and host='localhost';

flush privileges;


为添加远程用户赋值管理所有权限,进行数据库管理(三台数据库服务器做同样操作)


GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'RDvYAKSLbDb7#1225' WITH GRANT OPTION;

flush privileges;(刷新权限) 


5、组建集群

三台独立的数据库都准备好后,开始组建galera cluster,先停mariadb服务:

systemctl stop mariadb


修改mariadb的配置:

两台服务器的配置里除wsrep_node_name和wsrep_node_address外,其它配置项都相同。

10.88.1.14 node1配置

vim /etc/my.cnf.d/server.cnf

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_cluster_address="gcomm://10.88.1.14,10.88.1.15,10.88.1.16" #整个集群的IP地址
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_slave_threads=4
innodb_flush_log_at_trx_commit=0
wsrep_provider_options="gcache.size=1G"
wsrep_cluster_name=rvsdb #集群名称
wsrep_node_name=node1 #hostname,对应前面网路配置/etc/hosts
wsrep_node_address=10.88.1.14 #机器IP地址
wsrep_sst_method=rsync #同步方式
#bind-address=0.0.0.0


10.88.1.15 node2配置

vim /etc/my.cnf.d/server.cnf

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_cluster_address="gcomm://10.88.1.14,10.88.1.15,10.88.1.16" #整个集群的IP地址
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_slave_threads=4
innodb_flush_log_at_trx_commit=0
wsrep_provider_options="gcache.size=1G"
wsrep_cluster_name=rvsdb #集群名称
wsrep_node_name=node2 #hostname,对应前面网路配置/etc/hosts
wsrep_node_address=10.88.1.15 #机器IP地址
wsrep_sst_method=rsync #同步方式
#bind-address=0.0.0.0

10.88.1.16 node3配置

vim /etc/my.cnf.d/server.cnf

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_cluster_address="gcomm://10.88.1.14,10.88.1.15,10.88.1.16" #整个集群的IP地址
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_slave_threads=4
innodb_flush_log_at_trx_commit=0
wsrep_provider_options="gcache.size=1G"
wsrep_cluster_name=rvsdb #集群名称
wsrep_node_name=node3 #hostname,对应前面网路配置/etc/hosts
wsrep_node_address=10.88.1.16 #机器IP地址
wsrep_sst_method=rsync #同步方式
#bind-address=0.0.0.0

注意:wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so中的目录是galera-4(MariaDB 10.4之前是galera),否则报错

[ERROR] wsrep_load(): dlopen(): /usr/lib64/galera/libgalera_smm.so: cannot open shared object file: No... directory

[ERROR] WSREP: Failed to create a new provider '/usr/lib64/galera/libgalera_smm.so' with optio...ep library


去第一个10.88.1.14节点启动集群(底层调用的是mysqld --wsrep-new-cluster命令):

galera_new_cluster

此时能看到mysqld进程以带参数的方式启动,并且同时监听4567和3306端口。

需要注意galera_new_cluster仅执行一次,以后这个节点重启按正常服务方式启动就行了

在10.88.1.15  10.88.1.16

执行命令

systemctl start mariadb

集群常用命令

登录后查看状态

show status like "wsrep_ready";

QQ截图20201128183933.png

show status like 'wsrep_cluster%';

QQ截图20201128184009.png

show status like "wsrep_cluster_size";

QQ截图20201128184026.png

查看集群状态

show status like "wsrep%";

+------------------------------+----------------------------------------------------------------+

| Variable_name | Value |

+------------------------------+----------------------------------------------------------------+

| wsrep_apply_oooe | 0.000000 |

| wsrep_apply_oool | 0.000000 |

| wsrep_apply_window | 1.000000 |

| wsrep_causal_reads | 14 |

| wsrep_cert_deps_distance | 1.200000 |

| wsrep_cert_index_size | 3 |

| wsrep_cert_interval | 0.000000 |

| wsrep_cluster_conf_id | 22 |

| wsrep_cluster_size | 3 | ##集群成员

| wsrep_cluster_state_uuid | b8ecf355-233a-11e8-825e-bb38179b0eb4 | ##UUID 集群唯一标记

| wsrep_cluster_status | Primary | ##主服务器

| wsrep_commit_oooe | 0.000000 |

| wsrep_commit_oool | 0.000000 |

| wsrep_commit_window | 1.000000 |

| wsrep_connected | ON | ##当前是否连接中

| wsrep_desync_count | 0 |

| wsrep_evs_delayed | |

| wsrep_evs_evict_list | |

| wsrep_evs_repl_latency | 0/0/0/0/0 |

| wsrep_evs_state | OPERATIONAL |

| wsrep_flow_control_paused | 0.000000 |

| wsrep_flow_control_paused_ns | 0 |

| wsrep_flow_control_recv | 0 |

| wsrep_flow_control_sent | 0 |

| wsrep_gcomm_uuid | 0eba3aff-2341-11e8-b45a-f277db2349d5 |

| wsrep_incoming_addresses | AUTO,AUTO,AUTO  | ##连接中的数据库

| wsrep_last_committed | 9 | ##sql 提交记录

| wsrep_local_bf_aborts | 0 | ##从执行事务过程被本地中断

| wsrep_local_cached_downto | 5 |

| wsrep_local_cert_failures | 0 | ##本地失败事务

| wsrep_local_commits | 4 | ##本地执行的sql

| wsrep_local_index | 0 |

| wsrep_local_recv_queue | 0 |

| wsrep_local_recv_queue_avg | 0.057143 |

| wsrep_local_recv_queue_max | 2 |

| wsrep_local_recv_queue_min | 0 |

| wsrep_local_replays | 0 |

| wsrep_local_send_queue | 0 | ##本地发出的队列

| wsrep_local_send_queue_avg | 0.000000 | ##队列平均时间间隔

| wsrep_local_send_queue_max | 1 |

| wsrep_local_send_queue_min | 0 |

| wsrep_local_state | 4 |

| wsrep_local_state_comment | Synced |

| wsrep_local_state_uuid | b8ecf355-233a-11e8-825e-bb38179b0eb4 | ##集群ID

| wsrep_protocol_version | 8 |

| wsrep_provider_name | Galera |

| wsrep_provider_vendor | Codership Oy <info@codership.com> |

| wsrep_provider_version | 25.3.23(r3789) |

| wsrep_ready | ON | ##插件是否应用中

| wsrep_received | 35 | ##数据复制接收次数

| wsrep_received_bytes | 5050 |

| wsrep_repl_data_bytes | 1022 |

| wsrep_repl_keys | 14 |

| wsrep_repl_keys_bytes | 232 |

| wsrep_repl_other_bytes | 0 |

| wsrep_replicated | 5 | ##随着复制发出的次数

| wsrep_replicated_bytes | 1600 | ##数据复制发出的字节数

| wsrep_thread_count | 2 |

+------------------------------+----------------------------------------------------------------+

# 这里应该显示集群里有3个节点

[root@db137 mysql]# mysql -e "show status like 'wsrep_cluster_size'" +--------------------+-------+

| Variable_name      | Value |

+--------------------+-------+

| wsrep_cluster_size | 3     |

+--------------------+-------+# 这里应该显示ON

[root@db137 mysql]# mysql -e "show status like 'wsrep_connected'"  +-----------------+-------+

| Variable_name   | Value |

+-----------------+-------+

| wsrep_connected | ON    |

+-----------------+-------+# 这里应该显示 AUTO

[root@db137 mysql]# mysql -e "show status like 'wsrep_incoming_addresses'"+--------------------------+----------------+

| Variable_name            | Value          |

+--------------------------+----------------+

| wsrep_incoming_addresses | AUTO,AUTO,AUTO |

+--------------------------+----------------+# 这里节点的同步状态

[root@db137 mysql]# mysql -e "show status like 'wsrep_local_state_comment'" +---------------------------+--------+

| Variable_name             | Value  |

+---------------------------+--------+

| wsrep_local_state_comment | Synced |

+---------------------------+--------+


6.测试集群mariad数据是否同步

MariaDB [(none)]> create database lizk;

Query OK, 1 row affected (0.010 sec)

MariaDB [(none)]> show databases;

7.模拟脑裂后的处理

下面模拟在网络抖动发生丢包的情况下,两个节点失联导致脑裂。在192.168.153.143和192.168.153.144两个节点上分别执行:

iptables -A INPUT -p tcp --sport 4567 -j DROP

iptables -A INPUT -p tcp --dport 4567 -j DROP

以上命令用来禁止wsrep全同步复制4567端口通信

在192.168.153.142节点上查看:

MariaDB [(none)]> show status like "ws%";

+------------------------------+--------------------------------------------+

| Variable_name | Value |

+------------------------------+--------------------------------------------+

| wsrep_apply_oooe | 0.000000 |

| wsrep_apply_oool | 0.000000 |

| wsrep_apply_window | 1.000000 |

| wsrep_causal_reads | 16 |

| wsrep_cert_deps_distance | 1.125000 |

| wsrep_cert_index_size | 3 |

| wsrep_cert_interval | 0.000000 |

| wsrep_cluster_conf_id | 18446744073709551615 |

| wsrep_cluster_size | 1 |

| wsrep_cluster_state_uuid | b8ecf355-233a-11e8-825e-bb38179b0eb4 |

| wsrep_cluster_status | non-Primary |

现在已经出现脑裂的情况,并且集群无法执行任何命令。

为了解决这个问题,可以执行

set global wsrep_provider_options="pc.bootstrap=true";

通过这个命令来强制恢复出现脑裂的节点。

验证:

MariaDB [(none)]> set global wsrep_provider_options="pc.bootstrap=true";

Query OK, 0 rows affected (0.015 sec)


MariaDB [(none)]> select @@wsrep_node_name;

+-------------------+

| @@wsrep_node_name |

+-------------------+

| node1            |

+-------------------+

1 row in set (0.478 sec)

最后我们将节点192.168.153.143和192.168.153.144恢复一下,只要清理一下iptables表即可(因为我的是测试环境,生产环境需要删除上面的规则即可):

[root@node3 mysql]# iptables -F

恢复后验证一下:

MariaDB [(none)]> show status like "wsrep_cluster_size";

+--------------------+-------+

| Variable_name      | Value |

+--------------------+-------+

| wsrep_cluster_size | 3    |

+--------------------+-------+

1 row in set (0.001 sec)


9.因故障需要对集群的两个节点进行停机检查,重启服务后是否能同步数据;

对192.168.153.143和192.168.153.144执行停止mariadb的操作:

[root@node2 mysql]# systemctl stop mariadb

在192.168.153.142节点上插入数据:

MariaDB [test]> select * from test1;

+------+

| id |

+------+

| 2 |

| 2 |

| 1 |

| 3 |

+------+

4 rows in set (0.007 sec)

现在把集群中另外两个节点重新启动,查看数据一致性情况,跟主节点的数据一样。

10.异常处理:当机房突然停电,所有galera主机都非正常关机,来电后开机,会导致galera集群服务无法正常启动。如何处理?

第1步:开启galera集群的群主主机的mariadb服务。

第2步:开启galera集群的成员主机的mariadb服务。

异常处理:galera集群的群主主机和成员主机的mysql服务无法启动,如何处理?

解决方法一:第1步、删除garlera群主主机的/var/lib/mysql/grastate.dat状态文件

/bin/galera_new_cluster启动服务。启动正常。登录并查看wsrep状态。

第2步:删除galera成员主机中的/var/lib/mysql/grastate.dat状态文件

systemctl restart mariadb重启服务。启动正常。登录并查看wsrep状态。

解决方法二:第1步、修改garlera群主主机的/var/lib/mysql/grastate.dat状态文件中的0为1

/bin/galera_new_cluster启动服务。启动正常。登录并查看wsrep状态。

第2步:修改galera成员主机中的/var/lib/mysql/grastate.dat状态文件中的0为1

systemctl restart mariadb重启服务。启动正常。登录并查看wsrep状态。


查看 tail -f /var/lib/mysql/grastate.dat 

safe_to_bootstrap: 1

在哪个节点上。然后执行 galera_new_cluster  变成主节点。以此自执行其他节点数据库的 

systemctl start mariadb.service


查看端口

netstat -tlpn | grep -e 3306 -e 4567

查看

ps aux | grep mysql


四,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,则未使用,而对于其他方法,它的格式应为。 内容在日志中以及使用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语句数


标签: mariadb

相关文章

Centos 同步网络时间5年前 (2020-11-28)
Centos 关闭selinux5年前 (2020-11-30)
docker容器自动启动设置4年前 (2021-12-25)
CentOS7 配置163 yum源5年前 (2020-11-27)
Centos修改MTU(巨型帧)5年前 (2020-11-26)