GreatSQL使用限制
转载自:https://greatsql.cn/docs/user-manual/2-about-greatsql/2-4-greatsql-limitations.html
在使用GreatSQL的时候,有以下几条注意事项:
- MGR最多只支持9个节点。
- 每个节点都要启用binlog,且都要转存binlog,即设置 log_slave_updates=1。
- binlog format务必是row模式,即 binlog_format=ROW。
- 每个节点的 server_id 及 server_uuid 不能相同。
- 在8.0.20之前,要求 binlog_checksum=NONE,但是从8.0.20后,可以设置 binlog_checksum=CRC32。
- 要求启用 GTID,即设置 gtid_mode=ON。
- 要求 master_info_repository=TABLE 及 relay_log_info_repository=TABLE,不过从MySQL 8.0.23开始,这两个选项已经默认设置TABLE,因此无需再单独设置。
- 所有节点上的表名大小写参数 lower_case_table_names 设置要求一致。
- 所有表必须是InnoDB引擎。可以创建非InnoDB引擎表,但无法写入数据,在利用Clone构建新节点时也会报错。
- 所有表都必须要有主键。同上,能创建没有主键的表,但无法写入数据,在利用Clone构建新节点时也会报错。
- 不要使用大事务,默认地,事务超过150MB会报错,最大可支持2GB的事务(剧透:在GreatSQL未来的版本中,会增加对大事务的支持,提高大事务上限)。
- 如果是从旧版本进行升级,则不能选择 MINIMAL 模式升级,建议选择 AUTO 模式,即 upgrade=AUTO。
- 由于MGR的事务认证线程不支持 gap lock,因此建议把所有节点的事务隔离级别都改成 READ COMMITTED。基于相同的原因,MGR集群中也不要使用 table lock 及 name lock(即 GET_LOCK() 函数 )。
- 在多主(multi-primary)模式下不支持串行(SERIALIZABLE)隔离级别。
- 不支持在不同的MGR节点上,对同一个表分别执行DML和DDL,可能会造成数据丢失或节点报错退出(剧透:在GreatSQL未来的版本中有望得到解决)。
- 在多主(multi-primary)模式下不支持多层级联外键表。另外,为了避免因为使用外键造成MGR报错,建议设置 group_replication_enforce_update_everywhere_checks=ON。
- 在多主(multi-primary)模式下,如果多个节点都执行 SELECT ... FOR UPDATE 后提交事务会造成死锁,有必要的话,被判定为死锁的那个事务可以再重试提交。
- 不支持复制过滤(Replication Filters)设置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2022-05-06 互联网风口过去了吗
2020-05-06 kibana访问多个 Elasticsearch 节点间的负载均衡
2020-05-06 kibana配置文件kibana.yml参数详解
2020-05-06 Logstash:Grok filter 入门
2020-05-06 Beats:最佳实践
2020-05-06 2.2 virtualenv 虚拟环境
2020-05-06 2.1pip的安装和使用