栏目头部广告

MySQL主从同步异常1864

1、查询MySQL复制主从同步报错信息

MySQL主从同步异常1864(图1)

Last_Error: Cannot schedule event Write_rows, relay-log name /opt/udb/instance/mysql-5.7/3ced298f-1a67-48bc-ac84-5f317bb26420/relaylog/mysql-relay.000084, position 6634589 to Worker thread because its size 21939600 exceeds 16777216 of slave_pending_jobs_size_max.

【注】通过报错信息,不难发现slave_pending_jobs_size_max的大小小于当前需要执行事件所需的内存大小。经查看,slave_pending_jobs_size_max的大小设置的是默认值16777216(即16M),小于21939600。

2、主从同步异常修复

(1)查看主库max_allowed_packet的大小

show variables like 'max_allowed_packet';

MySQL主从同步异常1864(图2)

【注】默认单位是B,即268435456/1024/1024=256M

(2)设置从库slave_pending_jobs_size_max大小

show variables like 'slave_pending_jobs_size_max';

MySQL主从同步异常1864(图3)


stop slave;
set global slave_pending_jobs_size_max=268435456;
start slave;

【注】如果需要持久化配置,需要修改配置文件,修改完成后需要重启DB进程。

3、slave_pending_jobs_size_max功能解读

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

作者:UStarGao
链接:https://www.starcto.com/mysql/77.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐

UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`