暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PXC使用中的特点 和注意事项

原创 szrsu 2023-09-08
182
State Snapshot Transfer(SST) 全量传输
Incremental state Transfer(IST)增量传输

SST 发生的者的身上就是donor,donor 需要发起innobackupex 

传输SST有几种方法:
1. xtrabackup
2. mysqldump mysql库也会传输
3. rsync 对innodb整个库进行锁定来拷贝,保证一致性


在PXC中还有一个特别重要的模块就是GCache。它的核心功能就是每个节点缓存当前最新的写集。如果有新节点加入进来,就可以把新数据的增量传递给新节点,而不需要再使用SST方式了。这样可以让节点更快地加入集群中。涉及参数如下:
gcache.size:代表用来缓存写集增量信息的大小。它的默认大小是128MB,通过wsrep_provider_options参数设置。建议调整为2GB-4GB范围,足够的空间便于缓存更多的增量信息。
gcache.mem_size:代表gcache中内存缓存的大小,适度调大可以提高整个集群的性能。
gcache.page_size:可以理解为如果内存不够用(gcache不足),就直接将写集写入磁盘文件中。


如果node3 需要停一下机,reboot , 加点内存,换个硬盘等,node3 希望说能不能把增量传给我,这就是IST

Galera 2.X之前只能传全量,node3能停多长时间可以传IST,取决于gcache.size 

wsrep_provider_options 默认128M

(1)gcache.size到底分配多大合适呢?
可以算一个小时的binlog量大概多大,一般预留2-3小时,gcache.size大小2-4G
wsrep_provider_options="gcache.size=4G"

(2)gcache是否存在
答:只在活着的机器上存在,如果整个集群挂掉,gcache就消失了

(3)怎么避免gcache丢失这件事情呢

1. 所有的节点中最少有一个在线,进行滚动重启

2. 利用主从的概念,把一个从节点转化成PXC里的节点



PXC使用中的特点 和注意事项

PXC里任何节点都可以读写

他的ID增长顺序是什么样的
show global variables like "%auto%";

offset 是节点数,起始值有啥区别吗
1,2,3

node1, 1 node2: 2 node3: 3 offset: 3
1,4, 7,10 node1 
5, 8, 11 … node2
6, 9, 12 …. node3 

跟双主一样,通过控制步长和起始值来避免自增主键冲突
 
update tb set col3=col3-100 where id=10;
native 处理 node1,node2, node3 理论可以同时处理这个SQL
在PXC里同时更新到同一行记录是可能存在这个风险的
乐观并发控制:只锁本地的行记录,不锁别人的,不锁全局,本地处理完再发给别人,那么就有可能大家同时更新同一行记录 Error: 1213 SQLSTATE: 40001
考虑单节点写入
复制

欢迎关注个人微信公众号,获取更多知识
gz.png

最后修改时间:2024-05-17 15:41:27
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论