MGR 限制与环境要求

环境要求:

基础设施:

1、只支持Innodb 存储引擎

  • 由于存在冲突检测,冲突需要回滚事务
  • 可以设置参数,来禁止其他的存储引擎
    • disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"

2、主键

  • 每个表都需要有主键或者是等效的非NULL唯一键

3、IPV4网络

  • 从MySQL 8.0.14开始支持IPV6,由于现在线上使用的最高版本MySQL是5.7.24,所以需要注意这一点

4、网络性能要求高

  • 网络延迟和网络贷款都会影响组的性能和稳定性,成员之间需要保证双向通信

实例配置要求:

  • log_bin = on
  • log_slave_updates = on
  • binlog_format = row
  • binlog_checksum = none
  • GTID_MODE = ON
  • master_info_repository = table
  • relay_log_info_repository = table
  • transaction-write-set-extraction=XXHASH64 
  • 并行复制
    • --slave-parallel-workers=N (N并行应用程序线程的数量)
    • --slave-preserve-commit-order=1 确保并行事务的最终提交与原始事务的顺序相同
    • --slave-parallel-type=LOGICAL_CLOCK

组复制限制:

1、范围锁

  • 如果非必须使用rr的场景,可以设置隔离级别为rc

2、binlog_checksum = none

3、多主不支持serializable隔离级别

4、多主不支持并发的DML和DDL(后发起的事务会失败)

5、多主不支持级联外键约束 可能导致冲突监测到冲突的事务,多主数据更新的严格一致性检查

开启group_replication_enforce_update_everywhere_checks=ON

6、多主使用 select ... for updates 可能会导致死锁

7、不支持过滤复制

8、最大组成员配置为 9个

8、大事务限制

  • 超过5s没有通过复制,可能导致节点丢失
  • 缓解措施如下:
  • 切割事务 例如 load data
  • 指定组接受的最大事务的大小,如果事务超过会进行回滚。group_replication_transaction_size_limit  5.7 默认为0 8.0默认为143M
  • group_replication_compression_threshold 指定apply 压缩的消息大小。此系统变量默认为1000000字节(1 MB),因此会自动压缩大型消息。压缩由Group Replication的组通信系统(GCS)在收到group_replication_transaction_size_limit 设置允许 但超出 group_replication_compression_threshold 设置的消息时执行。如果将系统变量值设置为零,则会禁用压缩
  • 8.0.16后 大事务将进行自动分段     group_replication_communication_max_message_size 默认10M 若压缩后还会超过这个值,就会对压缩后的message 进行分段
  • 8.0.13 开始 配置 group_replication_member_expel_timeout 防止被怀疑是失败的成员,被提出集群前延长等待的时间
  • 若未设置上述参数,最大包限制将为从库节点的 slave_max_allowed_packet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值