mysql主备同步问题总结

mysql主备同步问题总结

一、能用命令修复的几种报错:

基础知识:mysql主备同步模式有三种:半同步、异步和双通道. 其中,半同步和异步同步模式在备库上执行show slave status\G的结果只有row1, 若结果里除了row1还有row2,同步模式则为双通道。

1.1 last_errno:1305错误
last_error:error ‘savepoint trans5 does not exist’ on query. Default database: ‘shop’. Query: ‘release savepoint’ trans5
解决方法:
在备库上执行:set global rds_query_event_filter = ‘RELEASE SAVEPOINT’; stop slave; start slave;


1.2 Last_SQL_Errno: 145
Last_SQL_Error: Worker 0 failed executing transaction ‘’ at master log mysql-bin.000080, end_log_pos 283450; Error ‘Table ‘./mysql/proc’ is marked as crashed and should be repaired’ on query. Default database: ‘yj_xjp_0324_01’. Query: 'DROP PROCEDURE IF EXISTS update_txyz_xgtl
Replicate_Ignore_Server_Ids:
内部表损坏,对系统内部进行修复即可:
stop slave;
repair table mysql.proc;
start slave;


1.3 Got fatal error 1236原因和解决方法
logevent超过max_allowed_packet 大小

1.3.1 Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master; the start event position from ‘mysql-bin.006730’ at 290066246, the last event was read from '/u01/my3309/log/mysql-bin.006730
【原因】
此类报错和max_allowed_packet参数的设置值相关。首先max_allowed_packet控制着主从复制过程中一个语句产生的二进制binlog event大小,它的值必须是1024的倍数 。出现此类错误的常见原因是
1) 该参数在主备库的配置大小不一样,主库的配置值大于从库的配置值。 从主库传递到备库的binlog event大小超过了主库或者备库的max_allowed_packet值大小。
2) 主库有大量数据写入时,如在主库上执行 load data,insert into … select 语句,产生大事务。
当主库向从库传递一个比从库的max_allowed_packet 大的packet ,从库接收该packet失败,并报 “log event entry exceeded max_allowed_packet“。
【如何解决】
需要确保主备配置一样,然后尝试调大该参数的值。
另外,5.6 版本中的 slave_max_allowed_packet_size 参数控制slave 可以接收的最大的packet 大小,该值通常大于而且可以覆盖 max_allowed_packet 的配置, 进而减少由于上面的问题导致主从复制中断。
RDS通常将这两个参数设置成了最大值1G . 如果无法调整,只能重搭备库
1). set global

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值