MySQL 的各参数的值设置需根据操作系统硬件情况,操作系统参数情况及数据库其他参数情况而进行调整,本文将结合生成环境的异常情况介绍MySQL slave_pending_jobs_size_max参数调整实践。
创新互联公司主营昭平网站建设的网络公司,主营网站建设方案,成都app开发,昭平h5小程序制作搭建,昭平网站营销推广欢迎昭平等地区企业咨询
之前负责的生产环境上从库出现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。
mysql> show variables like 'max_allowed_packet'; -- 134217728 即128M
+--------------------+-----------+
| Variable_name | Value |
+--------------------+-----------+
| max_allowed_packet | 134217728 |
+--------------------+-----------+
注意,需要大于主库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)
mysql> show slave status\G
Tips:slave_pending_jobs_size_max的用途: 在多线程复制时,在队列中Pending的事件所占用的最大内存,默认为16M,如果内存富余,或者延迟较大时,可以适当调大;注意这个值要比主库的max_allowed_packet大。
标题名称:MySQL参数调整实践之Slave_Pending_Jobs_Size_Max篇
分享URL:http://www.gawzjz.com/qtweb/news43/197043.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联