MySQL PXC集群大事务提交超限
2022/8/30 2:22:47
本文主要是介绍MySQL PXC集群大事务提交超限,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
研发人员在测试大事务提交时遇见了错误:
Got error 5 - 'Transaction size exceed set threshold' during COMMIT
测试了几次都是1200S的时候停止的,不过在注释掉特定步骤后,过程还是在1200S失去连接了,不知道这个1200S的执行参数是哪个,可能这个1200s的执行参数是关键,因为看 wsrep_max_ws_size 最大提交量是2G,理论上应该是够用的。 通过以下查询方式,也只能查出这个2G的限制:
show variables like '%max%'; show variables like '%timeout%'; select @@wsrep_max_ws_size; show variables where variable_name like '%size%'; show variables where value like '%1200%'; show status where value like '%1200%';
没找到如何设置1200S这个超时限制。 因此建议研发人员用如下方式临时设置 max_ws_size 参数:
set global wsrep_max_ws_size=1024*1024*1024*4;
然后重连数据库,再次测试一下大事务是否有效,如果有效的话,可择机改数据库配置。 另,强烈建议修改提交逻辑,减小每次事务提交大小,控制在1G以内,因为在1G-2G之间,按照官方说法,可能回遭遇bug。 附录:以下是在官方社区的提问及回复。
社区提问: When I execute my proceduer, 1200 seconds later, I got an error like this: Got error 5 - 'Transaction size exceed set threshold' during COMMIT wsrep_max_ws_size mysql> select @@wsrep_max_ws_size; +---------------------+ | @@wsrep_max_ws_size | +---------------------+ | 2147483647 | +---------------------+ But my trx size is small, less than 2G. Is there some other limits about the “Transaction size” in PXC 8.0 ? Where can I set the timeout more than 1200 seconds? Thanks a lot. 官方回复: Is your transaction less than 2GB but larger than 1GB? If so, you might be hitting some internal C function limitations that can’t handle data objects larger than 1GB. Since you are using PXC 8, you should take a look at the new streaming transaction option available.
这篇关于MySQL PXC集群大事务提交超限的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践
- 2024-02-07mysql 外键索引入门介绍,为什么工作中很少有人使用?