测试步骤:

从库停止复制:stop slave;

主库创建大表400万条记录。

开启从库复制:start slave;

监测从库error log持续输出:

2018-12-06T10:40:52.616289+08:00 4 [Note] Multi-threaded slave: Coordinator has waited 2431 times hitting slave_pending_jobs_size_max; current event size = 8207.

2018-12-06T10:40:52.647618+08:00 4 [Note] Multi-threaded slave: Coordinator has waited 2441 times hitting slave_pending_jobs_size_max; current event size = 8207.

2018-12-06T10:40:52.679589+08:00 4 [Note] Multi-threaded slave: Coordinator has waited 2451 times hitting slave_pending_jobs_size_max; current event size = 8207.

2018-12-06T10:40:52.711510+08:00 4 [Note] Multi-threaded slave: Coordinator has waited 2461 times hitting slave_pending_jobs_size_max; current event size = 8207.

2018-12-06T10:40:52.750250+08:00 4 [Note] Multi-threaded slave: Coordinator has waited 2471 times hitting slave_pending_jobs_size_max; current event size = 8207.

2018-12-06T10:40:52.785731+08:00 4 [Note] Multi-threaded slave: Coordinator has waited 2481 times hitting slave_pending_jobs_size_max; current event size = 8207.

搜索发现报错有以下两种情况

第一种

Last_Error: Cannot schedule event Rows_query, relay-log name ./db-s18-relay-bin.000448, position 419156572 to Worker thread because its size 18483519 exceeds 16777216 of slave_pending_jobs_size_max.

第二种

[Note] Multi-threaded slave: Coordinator has waited 701 times hitting slave_pending_jobs_size_max; current event size = 8167.

BUG地址:https://bugs.mysql.com/bug.php?id=68462

以上两种报错,初步判断问题可能在 slave_pending_jobs_size_max 的大小上,此值,官方默认是 16M,此值可以动态调整

slave-pending-jobs-size-max参数说明

在多线程复制时,在队列中Pending的事件所占用的最大内存,默认为16M,如果内存富余,或者延迟较大时,可以适当调大;注意这个值要比主库的max_allowed_packet大

slave-pending-jobs-size-max有如下几种情况:

1.- 如果event大小已经超过了等待任务大小的上限(配置slave-pending-jobs-size-max ),就报event太大的错,然后返回;

2.- 如果event大小+已经在等待的任务大小超过了slave-pending-jobs-size-max,就等待,至到等待队列变小;

3.- 如果当前的worker的队列满的话,也等待。

---------------------

检查slave_pending_jobs_size_max参数值为默认:

+-----------------------------+----------+

| Variable_name               | Value    |

+-----------------------------+----------+

| slave_pending_jobs_size_max | 16777216 |

+-----------------------------+----------+

调大该参数:

root@localhost:3306.sock [(none)]>set global slave_pending_jobs_size_max=16777216*8;

Query OK, 0 rows affected (0.02 sec)

root@localhost:3306.sock [(none)]>show variables like '%job%';

+-----------------------------+-----------+

| Variable_name               | Value     |

+-----------------------------+-----------+

| slave_pending_jobs_size_max | 134217728 |

+-----------------------------+-----------+

1 row in set (0.00 sec)

重新测试,告警消失。

WL#11348: Defaults: Increase Slave's Multi-Threaded Event Applier Buffer

看来MySQL 8.0的下一个版本会将默认值提高了。

mysql slave_pending_jobs_size_max_MySQL MTS复制: hitting slave_pending_jobs_size_max相关推荐

  1. mysql slave_pending_jobs_size_max_MySQL:关于Wating for Slave workers to free pending events等待...

    ###一.问题来源 这是一位朋友给我的一个截图,说show slave status一直处于Wating for Slave workers to free pending events状态,这个库是 ...

  2. php 多条查询结果插入新表,Mysql应用MySQL查询结果复制到新表的方法(更新、插入)...

    <Mysql应用MySQL查询结果复制到新表的方法(更新.插入)>要点: 本文介绍了Mysql应用MySQL查询结果复制到新表的方法(更新.插入),希望对您有用.如果有疑问,可以联系我们. ...

  3. mysql 半同步复制_Mysql半同步复制原理及问题排查

    mysql半同步复制和异步复制的差别如上述架构图所示:在mysql异步复制的情况下,Mysql Master Server将自己的Binary Log通过复制线程传输出去以后,Mysql Master ...

  4. mysql主主复制、主从复制、半同步的实现

    实验前提:两台服务器 Master server:172.16.23.1 slave server:172.16.23.2 一.mysql主从服务器实现 简单介绍: MySQL支持单向.异步复制,复制 ...

  5. keepalive 配合mysql主主复制

    keepalive安装(配合mysql主主复制) 系统:centos5.5_64 #vip为程序读取mysql的IP,应和程序服务器的网卡一个网段 主库实际IP   192.168.10.48 从库实 ...

  6. MySql UBUNTU下复制配置

    MySql UBUNTU下复制配置 [主服务器] 在/etc/mysql/目录下找到my.cnf,添加如下代码 [mysqld] log-bin=binary-log server-id=1 log- ...

  7. Mysql主主复制架构配置

    MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任 何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器 互为主从,并且都能向外提供服务. 这就比使用主从复制 ...

  8. MySQL多源复制【转】

    什么是多源复制? 首先,我们需要清楚 multi-master 与multi-source 复制不是一样的. Multi-Master 复制通常是环形复制, 你可以在任意主机上将数据复制给其他主机. ...

  9. mysql innodb 数据复制_快速将InnoDB表复制到另一个实例

    此过程演示如何将常规InnoDB表从正在运行的MySQL服务器实例复制 到另一个正在运行的实例.可以使用具有微小调整的相同过程在同一实例上执行完整表还原. 在源实例上,创建一个表(如果不存在): my ...

最新文章

  1. GLFW--Getting started
  2. 后端工程师入门前端页面重构(二):心法 I
  3. 浅谈身为小白学习Linux系统的四点实用建议
  4. python与mysql数据库连接中常见错误
  5. Charles(HTTP抓包工具软件)中文版
  6. 开机f8修复电脑步骤_知识 | 8种方法修复电脑无法开机问题
  7. 截屏当前界面_华为手机居然有这3种神奇的截屏方法,用过后,我就再也离不开了...
  8. Android HTTP POST上传
  9. 如何将React App转换为React Native
  10. C++并发编程之std::future
  11. rhel6.3-64 yum问题
  12. imp-00058: 遇到 oracle 错误 12560,MP-00058: 遇到 ORACLE 错
  13. mysql实现自动更新时间戳
  14. 数码照巧转胶片效果 美图秀秀制作质感写真
  15. poj-3295 Tautology
  16. GoLang—使用net/http构建Web服务(文件数据存储)(上)
  17. Autojs在线云更新教程
  18. vue:下拉树结构,el-select实现
  19. CSU-1729_齿轮转动
  20. 解决Python调试OSError: [WinError 193] %1 不是有效的 Win32 应用程序

热门文章

  1. Java微信运动步数排序设计_微信小程序仿微信运动步数排行(交互)
  2. 2021年中国企业风险投资发展现状及未来发展趋势分析[图]
  3. 如何在CSDN个人主页添加公众号或者个人微信二维码
  4. GetLastErr返回值ErrCode的宏定义以及含义
  5. Linux下安装Oracle12c图形化及静默两种方法安装操作手册
  6. [技巧]QQ密技(一)
  7. 今日头条前端面试总结
  8. 100000+人体验过后都说:这TM绝对是最变态的英语学习方法……
  9. python灰色预测_python实现灰色预测模型(GM11)——以预测股票收盘价为例
  10. 英语听力采用计算机化考试,高考英语听力机考特点与应对建议