
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.1.2.3.4.5.6.7.8.9.10. 复制从报错信息可以看出,是数调因为slave_pending_jobs_size_max的云南idc服务商大小小于当前需要执行事件所需的内存大小。经查看,整实slave_pending_jobs_size_max的数调大小设置的是默认值16777216(即16M),小于16777357。整实1.2、数调异常处理步骤如下:
(1)查看主库max_allowed_packet的整实大小 复制mysql> show variables like max_allowed_packet; -- 134217728 即128M+--------------------+-----------+| Variable_name | Value |+--------------------+-----------+| max_allowed_packet | 134217728 |+--------------------+-----------+1.2.3.4.5.6.
注意,云服务器需要大于主库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)1.2.3.4.5.6. (3)处理完毕检查一下主从同步情况 复制mysql> show slave status\G1.
Tips:slave_pending_jobs_size_max的用途: 在多线程复制时,在队列中Pending的整实事件所占用的最大内存,默认为16M,数调如果内存富余,或者延迟较大时,可以适当调大;注意这个值要比主库的max_allowed_packet大。
b2b信息网

