目录

一、Galera集群实验环境

二、初始安装

1. 安装galera-3、mysql-wsrep-5.7、Percona-XtraBackup-2.4.15

2. 修改配置文件

3. 初始化集群

4. 启动集群其它节点的mysqld服务

5. 验证安装

6. 问题排查

三、使用SST增加节点

四、使用IST增加节点

1. 设置gcache.size

2. IST测试

参考:


一、Galera集群实验环境

本篇以搭建三节点Galera Cluster for MySQL 5.7为例,说明Galera集群的安装步骤与基本配置,实验环境如下。

IP与主机名:
172.16.1.125    hdp2
172.16.1.126    hdp3
172.16.1.127    hdp4

软件环境:
CentOS Linux release 7.2.1511 (Core)
galera-3.28
mysql-wsrep-5.7.27
Percona-XtraBackup-2.4.15

硬件环境:
三台虚拟机,每台基本配置为:
. 双核双CPU,Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz
. 8G物理内存,8G Swap
. 100G物理硬盘

二、初始安装

我们从最简单的场景开始,假设在没有任何应用数据和访问的情况下,从头开始安装Galera集群。

1. 安装galera-3、mysql-wsrep-5.7、Percona-XtraBackup-2.4.15

以下步骤以root用户在三台主机执行。

(1)安装依赖包

yum install perl-Time-HiRes
yum -y install perl-DBD-MySQL.x86_64
yum -y install libaio*

(2)创建yum源文件

cat > /etc/yum.repos.d/galera.repo <<-END
[galera]
name = Galera
baseurl = https://releases.galeracluster.com/galera-3.28/centos/7/x86_64
gpgkey = https://releases.galeracluster.com/galera-3.28/GPG-KEY-galeracluster.com
gpgcheck = 1[mysql-wsrep]
name = MySQL-wsrep
baseurl =  https://releases.galeracluster.com/mysql-wsrep-5.7.27-25.19/centos/7/x86_64
gpgkey = https://releases.galeracluster.com/mysql-wsrep-5.7.27-25.19/GPG-KEY-galeracluster.com
gpgcheck = 1
END

(3)安装galera-3与mysql-wsrep-5.7

yum install -y galera-3 mysql-wsrep-5.7

(4)确认相关的rpm包

[root@hdp2~]#rpm -qa | grep -E 'galera|wsrep'
mysql-wsrep-client-5.7-5.7.27-25.19.el7.x86_64
galera-3-25.3.28-1.el7.x86_64
mysql-wsrep-common-5.7-5.7.27-25.19.el7.x86_64
mysql-wsrep-libs-5.7-5.7.27-25.19.el7.x86_64
mysql-wsrep-server-5.7-5.7.27-25.19.el7.x86_64
mysql-wsrep-5.7-5.7.27-25.19.el7.x86_64
mysql-wsrep-libs-compat-5.7-5.7.27-25.19.el7.x86_64
[root@hdp2~]#

(5)安装xtrabackup
        如果SST使用xtrabackup需要执行此步骤。注意xtrabackup与MySQL服务器的兼容性,如果版本不匹配会在xtrabackup的日志中报类似下面的错误:

innobackupex: Error: Unsupported server version: '5.7.27' Please report a bug at https://bugs.launchpad.net/percona-xtrabackup

对于MySQL 5.7.27,可从https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/下载xtrabackup 2.4.15版本。

# 安装xtrabackup
rpm -ivh percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm

至此软件包安装已完成。启动集群只要很少几项必须配置。

2. 修改配置文件

编辑/etc/my.cnf文件,增加以下内容:

[mysqld]
log-error=/var/log/mysqld.log
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name="mysql_galera_cluster"
wsrep_cluster_address="gcomm://172.16.1.125,172.16.1.126,172.16.1.127"
wsrep_sst_method=xtrabackup
wsrep_sst_auth=root:P@sswo2d
wsrep_node_name=node1               # 另外两个节点分别为node2、node3
wsrep_node_address="172.16.1.125"   # 另外两个节点分别为172.16.1.126、172.16.1.127

系统变量说明:

  • log-error:MySQL错误日志文件,集群初始化后从该文件中查找初始密码。
  • wsrep_provider:galera库文件。
  • wsrep_cluster_name:集群名称。
  • wsrep_cluster_address:集群节点IP地址。
  • wsrep_sst_method:SST方法。
  • wsrep_sst_auth:SST认证信息,xtrabackup使用此用户名和口令连接数据库实例。
  • wsrep_node_name:当前节点名称。
  • wsrep_node_address:当前节点地址。

3. 初始化集群

下面步骤以root用户在任一主机执行。

(1)启动第一个节点

/usr/bin/mysqld_bootstrap

该命令会启动本机的 mysqld 服务,MySQL缺省安装目录为/var/lib/mysql。注意,/usr/bin/mysqld_bootstrap 命令只在集群第一个节点启动时使用,因为该脚本中带有一个参数:–wsrep-new-cluster,代表新建集群。

# 查看mysqld服务状态
systemctl status mysqld

(2)查找并修改初始密码

# 查找初始密码
grep -i 'temporary password' /var/log/mysqld.log# 修改mysql root用户密码,需要根据提示输入上一步输出的初始密码
mysqladmin -uroot -p password 'P@sswo2d'

(3)创建一个非root管理账号

create user wxy identified by 'P@sswo2d';
grant all on *.* to wxy with grant option;

4. 启动集群其它节点的mysqld服务

# 在其它两个主机上以root用户执行

systemctl start mysqld

5. 验证安装

(1)查看集群节点数量

mysql> show status like 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+
1 row in set (0.00 sec)

(2)在三个节点分别建表插入数据,查看复制情况

-- node1
create database test;
use test;
create table t1(a int);
insert into t1 values(1);-- node2
use test;
create table t2(a int);
insert into t2 values(2);-- node2
use test;
create table t3(a int);
insert into t3 values(3);

在三个节点查询数据,结果一致:

mysql> select t1.a,t2.a,t3.a from test.t1,test.t2,test.t3;
+------+------+------+
| a    | a    | a    |
+------+------+------+
|    1 |    2 |    3 |
+------+------+------+
1 row in set (0.00 sec)

6. 问题排查

如果在初始化集群或启动mysqld服务时,错误日志中出现类似以下错误:

2019-10-05T10:25:29.729981Z 0 [ERROR] WSREP: wsrep_load(): dlopen(): /usr/lib64/galera-3/libgalera_smm.so: symbol SSL_COMP_free_compression_methods, version libssl.so.10 not defined in file libssl.so.10 with link time reference

说明galera插件没有加载成功。此时mysqld仍然可以成功启动,但是以单实例提供读写服务,不会进行节点间数据复制。升级OpenSSL软件包即可解决此问题。例如:

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum -y upgrade openssl

三、使用SST增加节点

假设node1、node2是正在使用的Galera集群节点,现在要增加第三个节点node3。目标是在对现有节点无阻塞的前提下,为新增节点进行SST数据同步。

(1)将hdp4初始化为新节点

# 在hdp4上执行
systemctl stop mysqld
rm -rf /var/lib/mysql
rm -rf /var/log/mysqld.log

(2)使用tpcc-mysql对hdp2执行压测,模拟应用负载

# 安装tpcc-mysql
tar -zxvf tpcc-mysql.tar.gz
cd tpcc-mysql/src
make
cd ..# 创建压测库表
mysql -uwxy -pP@sswo2d -h172.16.1.125 -e "create database tpcc_test;"
mysql -uwxy -pP@sswo2d -h172.16.1.125 -Dtpcc_test < create_table.sql
mysql -uwxy -pP@sswo2d -h172.16.1.125 -Dtpcc_test < add_fkey_idx.sql# 准备数据
tpcc_load 172.16.1.125 tpcc_test wxy P@sswo2d 10# 备份测试库用于重复测试
mysqldump --databases tpcc_test -uwxy -pP@sswo2d -h172.16.1.125 > tpcc_test.sql# 执行压测
tpcc_start -h172.16.1.125 -d tpcc_test -u wxy -p "P@sswo2d" -w 10 -c 32 -r 60 -l 300

关于tpcc-mysql的详细安装及使用说明参见https://wxy0327.blog.csdn.net/article/details/94614149#1.%20%E6%B5%8B%E8%AF%95%E8%A7%84%E5%88%92。

(3)在压测执行期间,启动hdp4上的MySQL实例

systemctl start mysqld

在hdp4启动过程中,hdp2、hdp3都是非阻塞的,但是会报以下锁错误:

Deadlock found when trying to get lock; try restarting transaction
Lock wait timeout exceeded; try restarting transaction

生产系统的Galera集群中联机添加节点时需要关注这个问题。当hdp4的MySQL实例启动成功,后续的压测过程不会再报错。hdp2的/var/log/mysqld.log文件中有以下关于SST的信息:

2019-10-16T02:04:07.877299Z 2 [Note] WSREP: Assign initial position for certification: 106026, protocol version: 4
2019-10-16T02:04:07.877385Z 0 [Note] WSREP: Service thread queue flushed.
2019-10-16T02:04:08.307002Z 0 [Note] WSREP: Member 0.0 (node3) requested state transfer from '*any*'. Selected 1.0 (node1)(SYNCED) as donor.
2019-10-16T02:04:08.307028Z 0 [Note] WSREP: Shifting SYNCED -> DONOR/DESYNCED (TO: 106177)
2019-10-16T02:04:08.377506Z 2 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
2019-10-16T02:04:08.377644Z 0 [Note] WSREP: Running: 'wsrep_sst_xtrabackup --role 'donor' --address '172.16.1.127:4444/xtrabackup_sst' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/' --defaults-file '/etc/my.cnf' --defaults-group-suffix ''   '' --gtid 'cada8d04-ef2b-11e9-a196-1ea90518b418:106177''
2019-10-16T02:04:08.380201Z 2 [Note] WSREP: sst_donor_thread signaled with 0
WSREP_SST: [INFO] Streaming with tar (20191016 10:04:08.542)
WSREP_SST: [INFO] Using socat as streamer (20191016 10:04:08.544)
WSREP_SST: [INFO] Streaming the backup to joiner at 172.16.1.127 4444 (20191016 10:04:08.552)
WSREP_SST: [INFO] Evaluating innobackupex --defaults-file=/etc/my.cnf $INNOEXTRA --galera-info --stream=$sfmt ${TMPDIR} 2>${DATA}/innobackup.backup.log | socat -u stdio TCP:172.16.1.127:4444; RC=( ${PIPESTATUS[@]} ) (20191016 10:04:08.555)
2019-10-16T02:04:10.586433Z 0 [Note] WSREP: (cad9d0f0, 'tcp://0.0.0.0:4567') turning message relay requesting off
2019-10-16T02:05:11.408356Z 89 [Note] WSREP: Provider paused at cada8d04-ef2b-11e9-a196-1ea90518b418:108094 (111402)
2019-10-16T02:05:11.679454Z 89 [Note] WSREP: resuming provider at 111402
2019-10-16T02:05:11.679485Z 89 [Note] WSREP: Provider resumed.
2019-10-16T02:05:12.057568Z 0 [Note] WSREP: 1.0 (node1): State transfer to 0.0 (node3) complete.
2019-10-16T02:05:12.057596Z 0 [Note] WSREP: Shifting DONOR/DESYNCED -> JOINED (TO: 108185)
WSREP_SST: [INFO] Total time on donor: 0 seconds (20191016 10:05:12.057)
2019-10-16T02:05:12.058281Z 0 [Note] WSREP: Member 1.0 (node1) synced with group.
2019-10-16T02:05:12.058296Z 0 [Note] WSREP: Shifting JOINED -> SYNCED (TO: 108185)
2019-10-16T02:05:12.127179Z 2 [Note] WSREP: Synchronized with group, ready for connections
2019-10-16T02:05:12.127215Z 2 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
2019-10-16T02:05:20.968604Z 0 [Note] WSREP: 0.0 (node3): State transfer from 1.0 (node1) complete.
2019-10-16T02:09:34.556227Z 0 [Note] WSREP: Member 0.0 (node3) synced with group.

当在hdp4上执行systemctl start mysqld后,集群中的所有节点首先会将已提交的事务刷新到磁盘,之后选择一个捐赠者向新增节点全量同步数据,本例中系统选择了node1作为捐献者。然后node1调用xtrabackup向node3拷贝物理文件,期间产生的写集将被缓存。node1成为捐献者时,状态由SYNCED转为DONOR/DESYNCED;当xtrabackup备份完成时,其状态变为JOINED;最后应用完缓存的写集时,状态又从JOINED变为SYNCED。同样从hdp4的/var/log/mysqld.log文件中可以发现,node3的状态变化过程为:OPEN -> PRIMARY -> JOINER -> JOINED -> SYNCED。

四、使用IST增加节点

SST方法将全量数据从捐献者节点拷贝到新加入节点,这类似于在MySQL主库做一个全备份,然后在从库还原,只不过在Galera集群中,该过程依赖于新加入节点的状态而自动触发。对于高并发大库环境下新增节点,SST方式可能会很痛苦。首先,如果使用mysqldump或rsync做SST,捐赠者节点时被阻塞的。其次,对于几百GB或更多的数据集,即使网络够快,同步过程也需要几个小时才能完成。所以生产环境新增节点时最好避免使用SST,而是改用IST。

IST只向新节点发送它比捐赠者Gcache中少的写集。Gcache是Galera节点保存写集副本的文件。IST比SST快得多,无阻塞,对捐赠者无明显影响。只要可能,这应该是新增节点的首选方案。

有时SST是不可避免的,当Galera无法确定新增节点状态时会发生这种情况。状态存储在grastate.dat文件中,如果发生以下情况将触发SST:

  • 在MySQL数据目录下不存在grastate.dat文件——节点可能是一个“干净的”新节点。
  • grastate.dat文件中没有seqno或group id——节点可能在DDL期间崩溃。
  • 由于缺少权限或文件系统损坏,grastate.dat无法读取。

1. 设置gcache.size

在上篇介绍IST时曾经提到,使用IST需要满足两个先决条件:新节点UUID与集群相同;Gcache足够存储增量写集。第一点很好满足,用xtrabackup对集群实例做物理备份时会自动为新节点保持集群的UUID。要满足第二个条件,需要进行一些计算,估计所需Gcache的大小。例如,对于tpcc-mysql压测,可以按下面的方法估算。

(1)执行压测

tpcc_start -h172.16.1.125 -d tpcc_test -u wxy -p "P@sswo2d" -w 10 -c 32 -r 60 -l 300

(2)在压测期间执行查询

set global show_compatibility_56=on;
set @start := (select sum(variable_value/1024/1024) from information_schema.global_status where variable_name like 'wsrep%bytes');
do sleep(60);
set @end := (select sum(variable_value/1024/1024) from information_schema.global_status where variable_name like 'wsrep%bytes');
select round((@end - @start),2) as `Mb/min`, round((@end - @start),2) * 60 as `Mb/hour`;

该查询计算每分钟写的字节数,结果如下:

+--------+---------+
| Mb/min | Mb/hour |
+--------+---------+
| 116.66 | 6999.60 |
+--------+---------+

压测总执行时间6分钟(预热1分钟,执行5分钟),gcache.size只要设置为大于117 * 6MB即可,因此这里把gcache.size均设置为1G,足够演示IST数据同步。在三个节点的配置文件/etc/my.cnf中添加如下参数,然后重启实例使之生效。

wsrep_provider_options="gcache.size=1073741824"

2. IST测试

同样假设node1、node2是正在使用的Galera集群节点,现在要增加第三个节点node3。为避免SST,将从node1使用xtrabackup创建完整备份,在node3上恢复备份并创建Galera状态文件,以便Galera可以确定节点的状态并跳过SST。为了尽可能接近IST之前的最新数据,还将创建一个增量备份。

(1)将hdp4初始化为新节点

# 在hdp4上用root用户执行
systemctl stop mysqld
rm -rf /var/lib/mysql/*
rm -rf /var/log/mysqld.log
rm -rf /tmp/incremental/*

(2)向集群重新导入压测库

mysql -uwxy -pP@sswo2d -h172.16.1.125 -Dtpcc_test < tpcc_test.sql

(3)执行压测模拟生产负载

tpcc_start -h172.16.1.125 -d tpcc_test -u wxy -p "P@sswo2d" -w 10 -c 32 -r 60 -l 300

接下来的第(4)、(5)、(6)、(7)步骤均在第(3)步运行期间执行。

(4)手工执行对集群的xtrabackup备份

# 在hdp2上用mysql用户执行下面的命令进行全量备份(已经事先配置好了hdp2到hdp4的免密登录)
innobackupex --defaults-file=/etc/my.cnf --user=wxy --password=P@sswo2d --socket=/var/lib/mysql/mysql.sock --galera-info --no-lock --stream=xbstream ./ | ssh mysql@172.16.1.127 "xbstream -x -C /var/lib/mysql"# 再执行一个增量备份,这里仅用于演示
scp mysql@172.16.1.127:/var/lib/mysql/xtrabackup_checkpoints /home/mysql/
innobackupex --defaults-file=/etc/my.cnf --user=wxy --password=P@sswo2d --socket=/var/lib/mysql/mysql.sock --incremental --incremental-basedir=/home/mysql --galera-info --no-lock --stream=xbstream ./ | ssh mysql@172.16.1.127 "xbstream -x -C /tmp/incremental"

(5)恢复hdp4的数据文件
        第(4)步执行完成后,在hdp4上用mysql用户执行以下命令:

# 恢复全量
innobackupex --apply-log --redo-only /var/lib/mysql/
# 恢复增量
innobackupex --apply-log --redo-only /var/lib/mysql/ --incremental-dir=/tmp/incremental

(6)生成grastate.dat文件
        根据xtrabackup_galera_info文件中的内容生成grastate.dat文件,用于IST增量同步。在hdp4上用mysql用户执行以下命令:

# 查看xtrabackup_galera_info
cat /var/lib/mysql/xtrabackup_galera_info# 生成grastate.dat文件,uuid和seqno的值来自xtrabackup_galera_info
tee /var/lib/mysql/grastate.dat <<EOF
# GALERA saved state
version: 2.1
uuid:    650c3acb-eff8-11e9-9905-c73959fd46ca
seqno:   743544
safe_to_bootstrap: 0
EOF

(7)启动新节点实例

# 用root用户在hdp4上执行
systemctl start mysqld

hdp2的/var/log/mysqld.log文件中有以下关于IST的信息:

2019-10-17T06:37:00.517675Z 1 [Note] WSREP: Assign initial position for certification: 758430, protocol version: 4
2019-10-17T06:37:00.517777Z 0 [Note] WSREP: Service thread queue flushed.
2019-10-17T06:37:00.961803Z 0 [Note] WSREP: Member 2.0 (node3) requested state transfer from '*any*'. Selected 1.0 (node2)(SYNCED) as donor.
2019-10-17T06:37:01.223935Z 0 [Note] WSREP: 1.0 (node2): State transfer to 2.0 (node3) complete.
2019-10-17T06:37:01.224331Z 0 [Note] WSREP: Member 1.0 (node2) synced with group.
2019-10-17T06:37:02.301018Z 0 [Note] WSREP: (4ce6e1a5, 'tcp://0.0.0.0:4567') turning message relay requesting off
2019-10-17T06:38:14.740957Z 0 [Note] WSREP: 2.0 (node3): State transfer from 1.0 (node2) complete.
2019-10-17T06:39:31.183193Z 0 [Note] WSREP: Member 2.0 (node3) synced with group.

可以看到,系统选择node2作为捐赠者,它的/var/log/mysqld.log文件中有以下关于IST的信息:

2019-10-17T06:37:00.991588Z 0 [Note] WSREP: Shifting SYNCED -> DONOR/DESYNCED (TO: 758624)
2019-10-17T06:37:01.045666Z 2 [Note] WSREP: IST request: 650c3acb-eff8-11e9-9905-c73959fd46ca:743544-758430|tcp://172.16.1.127:4568
2019-10-17T06:37:01.045701Z 2 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
2019-10-17T06:37:01.045885Z 0 [Note] WSREP: Running: 'wsrep_sst_xtrabackup --role 'donor' --address '172.16.1.127:4444/xtrabackup_sst' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/' --defaults-file '/etc/my.cnf' --defaults-group-suffix ''   '' --gtid '650c3acb-eff8-11e9-9905-c73959fd46ca:743544' --bypass'
2019-10-17T06:37:01.046440Z 2 [Note] WSREP: sst_donor_thread signaled with 0
2019-10-17T06:37:01.048205Z 0 [Note] WSREP: async IST sender starting to serve tcp://172.16.1.127:4568 sending 743545-758430

显示由hdp3向hdp4发送743545-758430之间的写集。

可以在hdp4的/var/log/mysqld.log文件中找到node3的IST增量同步和状态变化过程:

2019-10-17T06:37:01.445113Z 0 [Note] WSREP: Signalling provider to continue.
2019-10-17T06:37:01.445151Z 0 [Note] WSREP: Initialized wsrep sidno 2
2019-10-17T06:37:01.445185Z 0 [Note] WSREP: SST received: 650c3acb-eff8-11e9-9905-c73959fd46ca:743544
2019-10-17T06:37:01.445588Z 0 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.7.27'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server - (GPL), wsrep_25.19
2019-10-17T06:37:01.446278Z 2 [Note] WSREP: Receiving IST: 14886 writesets, seqnos 743544-758430
2019-10-17T06:37:01.446519Z 0 [Note] WSREP: Receiving IST...  0.0% (    0/14886 events) complete.
2019-10-17T06:37:02.539991Z 0 [Note] WSREP: (852308ca, 'tcp://0.0.0.0:4567') turning message relay requesting off
2019-10-17T06:37:11.453604Z 0 [Note] WSREP: Receiving IST... 11.1% ( 1648/14886 events) complete.
2019-10-17T06:37:21.485718Z 0 [Note] WSREP: Receiving IST... 23.5% ( 3504/14886 events) complete.
2019-10-17T06:37:31.686873Z 0 [Note] WSREP: Receiving IST... 37.8% ( 5632/14886 events) complete.
2019-10-17T06:37:31.751232Z 24 [Note] Got an error writing communication packets
2019-10-17T06:37:41.721891Z 0 [Note] WSREP: Receiving IST... 56.2% ( 8368/14886 events) complete.
2019-10-17T06:37:51.733818Z 0 [Note] WSREP: Receiving IST... 67.3% (10016/14886 events) complete.
2019-10-17T06:37:54.160644Z 39 [Note] Got an error writing communication packets
2019-10-17T06:38:01.739171Z 0 [Note] WSREP: Receiving IST... 80.0% (11904/14886 events) complete.
2019-10-17T06:38:03.165189Z 45 [Note] Got an error reading communication packets
2019-10-17T06:38:11.778534Z 0 [Note] WSREP: Receiving IST... 94.9% (14128/14886 events) complete.
2019-10-17T06:38:14.765552Z 0 [Note] WSREP: Receiving IST...100.0% (14886/14886 events) complete.
2019-10-17T06:38:14.765871Z 2 [Note] WSREP: IST received: 650c3acb-eff8-11e9-9905-c73959fd46ca:758430
2019-10-17T06:38:14.766840Z 0 [Note] WSREP: 2.0 (node3): State transfer from 1.0 (node2) complete.
2019-10-17T06:38:14.766873Z 0 [Note] WSREP: Shifting JOINER -> JOINED (TO: 777023)
2019-10-17T06:39:31.208799Z 0 [Note] WSREP: Member 2.0 (node3) synced with group.
2019-10-17T06:39:31.208825Z 0 [Note] WSREP: Shifting JOINED -> SYNCED (TO: 777023)
2019-10-17T06:39:31.241137Z 2 [Note] WSREP: Synchronized with group, ready for connections
2019-10-17T06:39:31.241155Z 2 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.

参考:

  • How to Avoid SST When Adding a New Node to MySQL Galera Cluster

Galera Cluster for MySQL 详解(二)——安装配置相关推荐

  1. Galera Cluster for MySQL 详解(四)——性能测试

    目录 一.测试目标 二.测试规划 三.测试过程 1. 缺省配置 2. 多线程 3. 流控 四.测试结论 参考: 本篇使用tpcc-mysql压测工具对实验环境的三节点Galera集群进行一系列性能测试 ...

  2. Galera Cluster for MySQL 详解(一)——基本原理

    目录 一.同步复制 二.Galera复制架构 1. wsrep api 2. 全局事务ID(global transaction id,GTID) 3. Galera复制插件 4. 组通信插件 三.G ...

  3. Galera Cluster for MySQL 详解(三)——管理监控

    目录 一.管理 1. 在线DDL (1)TOI (2)RSU (3)pt-online-schema-change 2. 恢复主组件 (1)了解主组件状态 (2)修改保存的主组件状态 3. 重置仲裁 ...

  4. from mysql partition select_爬虫(九十九)mysql详解二

    **mysql中字段的常见类型: ** 二进制位 bit(长度) tinyint[(长度)] [有无符号unsigned] [位数低于长度时候是否填充零zerofill] 有符号表示范围-128 ~ ...

  5. Git客户端图文详解如何安装配置GitHub操作流程攻略

    Git客户端图文详解如何安装配置GitHub操作流程攻略 软件应用 爱分享  3个月前 (08-15)  8896浏览  0评论 Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来 ...

  6. 详解CentOS7安装配置vsftp搭建FTP

    安装配置vsftpd做FTP服务,我们的Web应用使用git管理进行迭代,公共文件软件存储使用开源网盘Seafile来管理,基本够用.想不到FTP的使用的场景,感觉它好像老去了,虽然现在基本没有用到这 ...

  7. Linux系统安装Samba共享服务器详解及安装配置

    一.简介 Samba服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享软件,实现了Linux和windows系统间的文件共享.SMB(Server Messages Block,信息服务 ...

  8. Maven入门详解与安装配置

    Maven: Maven出现前的问题: 假设你现在做了一个项目,项目中肯定要用到一些jar包,比如说mybatis,log4j,JUnit等,除了这些之外,你有可能用到你的同事开发的其他的东西,比如说 ...

  9. freeswitch 用户配置详解_FreeSwitch安装配置记录-阿里云开发者社区

    安装FreeSwitch 主要命令如下: git clone -b v1.2.stable git://git.freeswitch.org/freeswitch.git cd freeswitch/ ...

最新文章

  1. 历年计算机一级考试题库及答案,全国计算机一级考试试题库及答案
  2. Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
  3. html的细节优化,网站页面优化细节详解
  4. #!/bin/sh与#!/bin/bash的区别
  5. (11)Node.js 核心模块fs – 同步函数( synchronization )
  6. 第18章 Redis数据结构常用命令
  7. 服务器搭建对讲机系统,世邦对讲配置步骤以及方法(支持跨服务器对讲).doc
  8. 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)...
  9. python链接mysql的代码
  10. C语言 斐波那契数列
  11. 柳州铁一中机器人_柳州铁一中学学子在2020年广西中小学电脑机器人竞赛中勇创佳绩...
  12. c++11并发与多线程
  13. sFlow监控OVS使用测试
  14. 微芯片植入大脑可保存人们的大脑记忆内容
  15. VMware下怎么批量创建,克隆,迁移虚拟机
  16. 听“元戎”首席架构师讲述华为云Serverless进化的故事
  17. 移动应用与云计算--第二届中国云计算大会有感
  18. 物料分类层级-Merchandise category hierarchies
  19. Cocos Creator 2.0.10极限跳跃实现
  20. 张栗炜虚拟键盘设备驱动

热门文章

  1. python绘制饼图双层_Python通过matplotlib画双层饼图及环形图简单示例
  2. PC端网站兼容meta设置
  3. mipi LCD 的CLK时钟频率与像素时钟的关系
  4. 单例模式在单线程多线程下的写法
  5. win+ubuntu双系统grub开机顺序设置
  6. 45 个 git 合代码的经典操作场景
  7. Y6(YT699)加密狗软件锁开发工具
  8. Android在ImageView上直接显示网络图片
  9. 职业经理人的五大工作
  10. cmake错误:target_compile_features specified unknown feature cxx_std_11 for target...