MySQL 参数调整实践之Slave_Pending_Jobs_Size_Max篇

数据库 其他数据库
本文将结合生成环境的异常情况介绍MySQL中Slave_Pending_Jobs_Size_Max参数调整实践。

MySQL 的各参数的值设置需根据操作系统硬件情况,操作系统参数情况及数据库其他参数情况而进行调整,本文将结合生成环境的异常情况介绍MySQL slave_pending_jobs_size_max参数调整实践。

1、异常描述

之前负责的生产环境上从库出现SQL进程停止的异常,错误信息如下:

  Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1864
Last_Error: Cannot schedule event Write_rows, relay-log name ./mysql-relay-bin.001304, position 416228895 to Worker thread because its size 16777357 exceeds 16777216 of slave_pending_jobs_size_max.

从报错信息可以看出,是因为slave_pending_jobs_size_max的大小小于当前需要执行事件所需的内存大小。经查看,slave_pending_jobs_size_max的大小设置的是默认值16777216(即16M),小于16777357。

2、异常处理步骤如下:

(1)查看主库max_allowed_packet的大小

mysql> show variables like 'max_allowed_packet';  -- 134217728 即128M
+--------------------+-----------+
| Variable_name | Value |
+--------------------+-----------+
| max_allowed_packet | 134217728 |
+--------------------+-----------+

(2)设置从库slave_pending_jobs_size_max的大小

注意,需要大于主库max_allowed_packet的大小

mysql> stop  slave;
Query OK, 0 rows affected (0.01 sec)
mysql> set global slave_pending_jobs_size_max=157286400;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.05 sec)

(3)处理完毕检查一下主从同步情况

mysql> show slave status\G

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

责任编辑:姜华 来源: 今日头条
相关推荐

2010-10-14 15:22:49

mysql Key_b

2016-12-26 17:22:30

2024-01-22 07:15:50

数据库MySQL数据库迁移

2023-07-24 07:13:38

MySQL数据库

2012-06-15 10:13:03

2012-01-17 10:20:25

Web App最佳实践用户体验

2011-04-06 08:54:38

游标脚本性能问题

2011-03-23 15:38:29

2020-04-22 09:00:00

REST API参数化前端

2011-09-22 10:48:20

MySQL集群HAProxy

2022-11-08 10:19:15

2022-09-07 08:11:30

LinuxLKRG结构体

2009-09-22 17:38:25

Jobs框架

2010-07-16 17:11:11

SQL Server数

2021-05-27 07:54:21

Math.max()-Infinity参数

2011-05-23 09:23:19

MySQLMongoDB

2010-06-13 16:09:28

MySQL maste

2010-06-13 17:20:58

MySQL maste

2015-07-02 11:17:30

MySQLSlave延迟优化

2020-10-15 09:10:02

MySQL性能优化
点赞
收藏

51CTO技术栈公众号