发布时间:2019-09-15 09:55:57编辑:auto阅读(1263)
从字面意思看了一下是因为slave_pending_jobs_size_max默认值为16777216(16MB),但是slave接收到的slave_pending_jobs_size_max为17085453(17M);
解决方案
从库执行如下SQL
mysql>stop slave; mysql>set global slave_pending_jobs_size_max=20000000; mysql> start slave;
#在多线程复制时,在队列中Pending的事件所占用的最大内存,默认为16M,如果内存富余,或者延迟较大时,可以适当调大;注意这个值要比主库的max_allowed_packet大
故障模拟:
从库设置 mysql> set global slave_parallel_workers=4; mysql> show variables like 'slave_parallel_workers'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ |slave_parallel_workers | 4 | +------------------------+-------+ 1 row in set (0.00sec) mysql>set global slave_pending_jobs_size_max=1024; mysql> show variables like 'slave_pend%'; +-----------------------------+-------+ | Variable_name | Value | +-----------------------------+-------+ |slave_pending_jobs_size_max | 1024 | +-----------------------------+-------+ 1 row in set (0.00sec)
主库操作: mysql> update erp_mkpf set usnam='测试1864错误'; ERROR 1197 (HY000):Multi-statement transaction required more than 'max_binlog_cache_size' bytes ofstorage; increase this mysqld variable and try again mysql> set global max_binlog_cache_size=8388608000000; Query OK, 0 rowsaffected (0.00 sec) mysql> begin; Query OK, 0 rowsaffected (0.00 sec) mysql> update erp_mkpf set usnam='测试1864错误'; Query OK, 70466 rowsaffected (0.38 sec) Rows matched:70466 Changed: 70466 Warnings: 0 mysql> commit; Query OK, 0 rowsaffected (0.08 sec)
从库查看状态: mysql> show slavestatus\G Last_SQL_Errno: 1864 Last_SQL_Error: Cannot scheduleevent Update_rows, relay-log name ./HE1-relay-bin.000005, position 494 toWorker thread because its size 8200 exceeds 1024 ofslave_pending_jobs_size_max.
上一篇: jaudiotagger 切割mp3文件
下一篇: Storefront与NetScaler
47846
46397
37285
34736
29317
25974
24918
19952
19548
18031
5794°
6419°
5930°
5963°
7067°
5913°
5947°
6440°
6405°
7782°