3分钟解决MySQL 1864 主从错误

本文介绍了解决MySQL从库复制过程中出现的延迟问题的方法。通过调整slave_pending_jobs_size_max参数来适应多线程复制场景中的内存需求,确保从库能够及时处理主库的更新操作。

wKiom1e87-aQ0QXXAAAPkNxB-7Q330.png

    从字面意思看了一下是因为slave_pending_jobs_size_max默认值为1677721616MB),但是slave接收到的slave_pending_jobs_size_max1708545317M);





解决方

从库执行如下SQL

1
2
3
mysql>stop slave;
mysql> set  global  slave_pending_jobs_size_max=20000000;
mysql> start slave;

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





故障模拟:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
从库设置
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)

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
主库操作:
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)

 

 

1
2
3
4
5
6




 本文转自 dbapower 51CTO博客,原文链接:http://blog.51cto.com/suifu/1841764,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值