percona xtradb cluster的节点间的同步方式:
? mysqldump
? rsync
? xtrabackup
mysqldump和rsync的缺点是,在复制的时候donor节点变成read-only状态,Xtrabackup SST使用备份锁,这意味着Galera提供程序根本不会暂停FTWRL(具有读锁定的刷新表)。
如果没有可用的节点可以安全地执行增量状态传输(IST),则群集默认为SST。
如果有可用的节点可以执行IST,则群集优先选择远程节点上的本地节点作为IST捐赠者。
如果没有可用于执行IST的本地节点,则群集选择远程节点作为捐助者。
如果有多个本地和远程节点可以执行IST,则群集将选择seqno最高的节点
------------------------------------------------------------------------------------------------------------------------
问题来了,什么时候用ist,什么时候用sst:
IST的实现由wsrep_provider_options="gcache.size=1G"参数决定,一般设置为1G。参数大小由什么决定,根据停机时间,若停机一小时,需要确认一小时产生多大的binlog来算出参数大小。
停机时间过长,部分数据gcache没有,此时该节点SST全量同步数据。
——————————————————————————————————————————————————————
二、关于pxc的两个重要的文件:
cat grastate.dat
# GALERA saved state
version: 2.1
uuid: f1680d37-79d9-11e8-aa9c-df857b28b95a
seqno: -1
safe_to_bootstrap: 0
uuid - 状态的唯一标识符
seqno - Ordinal Sequence Number,一当在该节点上没有生成或应用写入集时,seqno为0,即,不是
在grastate文件的生命周期中应用/生成。 -1是保存的seqno的特殊值。grastate.dat服务器运行时,允许Galera区分干净和干净
不洁的关机。在干净关闭后,将正确的seqno值写入文件。所以,当服务器恢复运行,如果该值仍然为-1,则表示服务器未完全关闭。如果该值大于0,这意味着关机是干净的。然后再将-1写入文件中。为了让服务器以相同的方式正确检测下一次关机是否干净。如果服务器节点在没有运行时处于此状态,则意味着该节点在事务处理期间崩溃处理
如果服务器节点在没有运行时处于这种状态,则意味着该节点在DDL期间崩溃。
# GALERA saved state
version: 2.1
uuid: 00000000-0000-0000-0000-000000000000
seqno: -1
gvwstate.dat 这个被primary 主键用作恢复,在主成立或者更改的时候会被创建。
因此在最新的primary 节点会存在这个文件。在节点干净的停止的时候此文件会被删除。
cat gvwstate.dat
my_uuid: c2562e3d-79e2-11e8-ae3a-0a5cb812cb00
#vwbeg
view_id: 3 3bb1ddca-79da-11e8-879f-2a889f7c3b3e 5
bootstrap: 0
member: 3bb1ddca-79da-11e8-879f-2a889f7c3b3e 0
member: c2562e3d-79e2-11e8-ae3a-0a5cb812cb00 0
member: f1672a54-79d9-11e8-a338-a63dc4c44393 0
bootstrap:值为0或1,但是它不会影响主要组建现在的恢复进程。
member:当前集群所含有的所有节点
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30162734/viewspace-2157251/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30162734/viewspace-2157251/