(基础)Mysql主库5.6版本低于从库5.7时的问题一则

背景

主库有大量数据更新100W+,导致从库(sql_thread失败)Last_SQL_Errno: 1755

写在前面
原文链接https://www.cnblogs.com/ajiangg/p/9399892.html
link

环境介绍

GTID复制,主库5.6.51(基于database的复制),从库5.7.32(基于并行复制LOGICAL_CLOCK)

不推荐主从版本不一致的架构

问题复现

对应少了数据更新,主从同步正常。大数据量变更之后,从库报错Last_SQL_Errno: 1755

报错内容:
Last_SQL_Errno: 1755
Last_SQL_Error: Cannot execute the current event group in the parallel mode. Encountered event Gtid, relay-log name ./oracle-relay-bin.000093, position 152912092 which prevents execution of this event group in parallel mode. Reason: The master event is logically timestamped incorrectly..

从库配置:
show variables like '%para%';
+------------------------+---------------+
| Variable_name          | Value         |
+------------------------+---------------+
| slave_parallel_type    | LOGICAL_CLOCK |
| slave_parallel_workers | 8             |
+------------------------+---------------+

再检查主库配置:
show variables like '%para%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| slave_parallel_workers | 5    |
+------------------------+-------+

发现主库根本就没有slave_parallel_type这项配置。想起来主库是mysql5.6了。
select version();
+------------+
| version()  |
+------------+
| 5.6.51-log |
+------------+

问题原因

主库5.6只支持基于DATABASE的并行复制,而5.7的从库配置成LOGICAL_CLOCK导致了异常。

解决方案

把从库的slave_parallel_type改为DATABASE,再重启sql_thread

从库:
set global slave_parallel_type='DATABASE';
show global variables like '%slave_parallel_type%';
+---------------------+----------+
| Variable_name       | Value    |
+---------------------+----------+
| slave_parallel_type | DATABASE |
+---------------------+----------+

stop slave sql_thread;
start slave sql_thread;
show slave status\G

之后会把主库从5.6升级到5.7,然后改为并行复制。

本文说明,主要技术内容来自互联网技术大佬的分享,还有一些自我的加工(仅仅起到注释说明的作用)。如有相关疑问,请留言,将确认之后,执行侵权必删

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值