GreatSQL社区

搜索

[已解决] MGR主从同步卡住导致集群写操作变慢

1166 8 2023-5-26 09:23
生产环境用的mgr一主四从,主从机器配置一样。偶尔会出现某一个或几个从节点同步卡住(同步时延持续增加),这个时候看写sql性能会逐渐下降(读没有问题)会导致业务超时。大部分这种情况能看到有相似报错"ERROR: GR Applier channel applier stopped with an error: Worker 2 failed executing transaction 'a3820476-331a-11ec-a7f3-0c42a1a0d2b4:9174737440'; Could not execute Write_rows event on table database.table; Duplicate entry 'hcuhgkd06ukoi5ny1zhf' for key 'table.PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY (1062) at 2023-04-10 12:58:08.309269",有几个疑问:
1. 什么情况会导致同步卡住,而且为什么大多情况是一个从节点有问题其他从节点是ok的
2. 一个从节点同步有问题为什么会影响mgr主库写sql性能,按理说mgr基于paxos超半数节点同步主节点不就可以提交事务了吗
问题困扰了很久,对mgr理解可能不到位,想看下怎么能解决
全部回复(8)
yejr 2023-5-26 20:41:01
看起来是数据冲突了,几个从节点最开始是怎么初始化的,是不是没有从主节点完整复制一份数据?
或者,从节点上是不是开启了写入,意外写入数据导致冲突?
可以把有冲突的节点重新复制一份数据,确保数据一致再说。
tradymeky 2023-5-27 11:49:19
yejr 发表于 2023-5-26 20:41
看起来是数据冲突了,几个从节点最开始是怎么初始化的,是不是没有从主节点完整复制一份数据?
或者,从节 ...

从节点最开始是以空节点加入的,按理说是完整复制,而且线上的库,从节点的只读配置没有动过。
另外尝试测试环境复现,从节点关闭只读写入一条数据,发现也没有出现上面的问题,而是数据也从从库同步到主库了(也是这个时候才知道mgr还能从库同步数据到主库..)
怀疑是不是因为一些原因重复同步?
yejr 2023-5-27 23:34:26
tradymeky 发表于 2023-5-27 11:49
从节点最开始是以空节点加入的,按理说是完整复制,而且线上的库,从节点的只读配置没有动过。
另外尝试 ...

查查从节点的binlog,看看有没本地写入的情况。
另外,从节点最好是设置super_read_only,彻底避免误操作写入数据。
(没设置super_read_only的)从节点上写入数据时,是可以复制到其他节点的,包括主节点。
综上,要注意:
1. 从节点上设置super_read_only。
2. 不要手动在从节点写任何数据。
tradymeky 2023-6-7 11:26:14
yejr 发表于 2023-5-27 23:34
查查从节点的binlog,看看有没本地写入的情况。
另外,从节点最好是设置super_read_only,彻底避免误操作 ...

叶老师,昨晚线上又复现了这个问题,目前看应该不是从节点有写入。而且目前看出现过的主从同步卡住有两种现象,一种是有以上主键冲突或记录不存在,一种是没有报错单纯不继续apply relay log。昨晚刚好两种情况都发生了(不同mgr集群),周期抓取的 performance_schema.replication_group_member_stats COUNT_TRANSACTIONS_REMOTE_IN_APPLIER_QUEUE值持续增大,卡住从节点的gtid_executed值不动。
tradymeky 2023-6-7 11:27:06
tradymeky 发表于 2023-6-7 11:26
叶老师,昨晚线上又复现了这个问题,目前看应该不是从节点有写入。而且目前看出现过的主从同步卡住有两种 ...

找了一篇文章感觉有点像这个原因
https://www.cnblogs.com/ijia/p/10759174.html
yejr 2023-6-7 11:30:09

可以先换成GreatSQL试试看哈 :)
另外,最好选择最新的8.0.32-24版本。
tradymeky 2023-11-10 16:53:03
卡住原因还是未知,从节点卡住导致集群写变慢是因为MGR流控的问题,关闭流控后不再出现该问题。
并且流控非常影响MGR集群写性能,关闭流控写性能测试出来是打开的3倍多。
yejr 2023-11-11 20:24:26
tradymeky 发表于 2023-11-10 16:53
卡住原因还是未知,从节点卡住导致集群写变慢是因为MGR流控的问题,关闭流控后不再出现该问题。
并且流控非 ...

MySQL MGR的流控机制非常粗糙,GreatSQL针对流控做了优化,详见说明 https://greatsql.cn/docs/8032/us ... -ha-mgr-new-fc.html
tradymeky

1

主题

0

博客

6

贡献

新手上路

Rank: 1

积分
11

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

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