GreatSQL社区

搜索

[已解决] MySQL8.0.33主从增强半同步复制,从库数据同步延时一直在增大

585 7 2023-4-19 15:20
本帖最后由 shynodes 于 2023-4-19 15:56 编辑

配置文件使用叶老师的在线工具生成,实例clone后change master 搭建主从,在主库导入employees测试库。


在使用多线程并行复制的时候,从库中show processlist中有两个信息:(Waiting for dependent transaction to commit,Waiting for semi-sync ACK from slave),
然后延时一直无限增大。
改为单线程复制的时候(replica_parallel_workers=0)还有其他参数更改,如下图,但结果还有Waiting for semi-sync ACK from slave的提示,延时一直无限增大。
(关于其中一个参数疑问:slave_preserve_commit_order不是应该设置为0吗,叶老师工具中生成的是1)


smi.png
全部回复(7)
shynodes 2023-4-19 15:39:12
是半同步变异步的等待时间参数设置过大,导致的?
yejr 2023-4-20 14:53:51
shynodes 发表于 2023-4-19 15:39
是半同步变异步的等待时间参数设置过大,导致的?

看起来有可能是这个原因,你先确认半同步复制工作是否正常呢
shynodes 2023-4-20 17:12:06
yejr 发表于 2023-4-20 14:53
看起来有可能是这个原因,你先确认半同步复制工作是否正常呢

当时看复制是没有问题,SQL\IO THREAD都YES状态,日志中也没有报错信息,就是延时一直增大。后来也没调整等待时间,是调整参数rpl_semi_master_wait-no_slave,才正常回放的。
yejr 2023-4-21 17:54:32
补充回复:
当启用并行复制时,要设置 slave_preserve_commit_order = 1,以保证从库回放relay log事务的顺序与这些事务在relay log中的顺序完全一致,也就是与主库提交的顺序完全一致,确保主从数据一致性。
yejr 2023-4-21 17:56:59
shynodes 发表于 2023-4-20 17:12
当时看复制是没有问题,SQL\IO THREAD都YES状态,日志中也没有报错信息,就是延时一直增大。后来也没调整 ...

先参考MySQL文档 https://dev.mysql.com/doc/refman/8.0/en/replication-semisync.html 的说明,或者随便搜一下其他中文资料参考,确保增强半同步复制工作正常。
shynodes 2023-4-22 09:57:21
yejr 发表于 2023-4-21 17:54
补充回复:
当启用并行复制时,要设置 slave_preserve_commit_order = 1,以保证从库回放relay log事务的顺 ...

基于writeset的并行复制,同一行数据的操作,不会在一个组里提交,应该不会会有主从不一致的情形出现吧
yejr 2023-4-22 10:39:43
shynodes 发表于 2023-4-22 09:57
基于writeset的并行复制,同一行数据的操作,不会在一个组里提交,应该不会会有主从不一致的情形出现吧 ...

事务里对不同行数据的修改前后顺序如果apply错了,也可能会相互影响的。
shynodes

3

主题

0

博客

15

贡献

新手上路

Rank: 1

积分
26

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-5-21 11:11 , Processed in 0.018847 second(s), 15 queries , Redis On.
快速回复 返回顶部 返回列表