记一次mysql主从同步因断电产生的不能同步问题 1236 and 1032
背景:
项目新上线一个月,qa需要测试断电服务拉起,服务拉起成功后,发现mysql主从异常
以下是发现的问题以及解决方案
问题1:
Slave_IO_Running: No 一方面原因是因为网络通信的问题也有可能是日志读取错误的问题。以下是日志出错问题的解决方案:
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
解决方案:
第一步停止从机slave
mysql> stop slave;
到master机器执行
mysql> show master status/G;
可以看到:
+-------------------+----------+--------------+----------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+----------------------------------+
| mysqld-bin.000013 | 4 | | information_schema,mysql |
+-------------------+----------+--------------+----------------------------------+
日志为mysqld-bin.000013
主机刷新日志
mysql> flush logs;
因为刷新日志file的位置会+1,即File变成为:mysqld-bin.000014
接着切换到从机
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysqld-bin.000014',MASTER_LOG_POS=4;mysql> stop slave;mysql> show slave status\G;
以上为解决方案,可百分之九十解决mysql 1236 error ,当然还有百分之十解决不了,还有个简单粗暴的方法
1.从机停止slave
mysql> stop slave;
2.重置binlog 文件
mysql> reset slave;mysql> reset master;
3.启动从机slave
mysql> stop slave;
问题2:
Slave_SQL_Running: No 1.可能是在从库进行了写操作 2.从库重启后进行了事物回滚导致和主库数据不一致
Last_SQL_Error: Worker 3 failed executing transaction '' at master log mysql-bin.000013, end_log_pos 440267874 Could not execute Delete_rows event on table db_test.tbuservcbgolog; Can't find record in 'tbuservcbgolog', Error_code: 1032 handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.0000013, end_log_pos 440267874
解决方案:
方法1,忽略所有1032错误,不推荐
更改my.cnf文件,在Replication settings下添加:
slave-skip-errors = 1032
方法2,跳过上一次错误:
mysql> stop slave ;mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;mysql> start slave ;
但是由于我们服务有好多秒级刷新的数据,所以导致跳过一个错误,又来一个错误
方法3,利用end_log_pos还原数据,此方法需要停止master的写操作
根据错误提示信息,用mysqlbinlog找到该条数据event SQL并逆向手动执行。如delete 改成insert。
本例中,此事件在主服务器Master binlog中的位置是 mysql-bin.000013, end_log_pos 440267874。
1)利用mysqlbinlog工具找出440267874的事件
( 可以加上参数-d, --database=name 来进一步过滤)
/usr/local/mysql-5.6.30/bin/mysqlbinlog --base64-output=decode-rows -vv mysql-bin.000013 |grep -A 20 '440267874'或者/usr/local/mysql-5.6.30/bin/mysqlbinlog --base64-output=decode-rows -vv mysql-bin.000013 --stop-position=440267874 | tail -20或者usr/local/mysql-5.6.30/bin/mysqlbinlog --base64-output=decode-rows -vv mysql-bin.000013 > decode.log
将查询出来的语句进行反转执行即可,然后启动slave就ok了
方法4,停止master的写操作后备份master数据到slave
方法5:某dba推荐方案:
可以通过修改mysql的配置项进行解决。
1.修改binlog_format,目前默认的应该是STATEMENT,可以修改为MIXED
2.修改sync_binlog=1,按照事物刷新磁盘
3.修改innodb_flush_log_at_trx_commit=1,当前系统默认可能是1
修改完之后会降低系统的性能
总而言之 1032 error 只要想办法把主从数据同步就OK了
转载于:https://www.cnblogs.com/lsy131479/p/11348275.html
记一次mysql主从同步因断电产生的不能同步问题 1236 and 1032相关推荐
- mysql改表字段类型导致数据丢失_故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题【转】...
一.问题起源 不久前用户反馈部门的 MySQL 数据库发生了数据更新丢失.为了解决这个问题,当时对用户使用的场景进行了分析.发现可能是因为用户在两台互为主从的机器上都进行了写入导致的数据丢失. 如图所 ...
- mysql断电同步不起作用_记一次mysql主从同步因断电产生的不能同步问题 1236 and 1032...
背景: 项目新上线一个月,qa需要测试断电服务拉起,服务拉起成功后,发现mysql主从异常 以下是发现的问题以及解决方案 问题1: Slave_IO_Running: No 一方面原因是因为网络通信 ...
- mysql集群和主从区别_搭建MySQL主从集群,主从复制过程中同步延迟问题
上一节我们成功搭建了主从复制.读写分离,实际上并发量和数据量不大的情况下,使用起来也是非常的流畅,无任何问题,可以正常运行了. 但是,要保证高可用,高并发的情况,可以写数据库master就有累了,从服 ...
- mysql断电同步不起作用_mysql主从同步因断电产生的不能同步问题
偶尔因为断电导致mysql slave 出现复制错误"Could not parse relay log event entry" Could not parse relay lo ...
- sql text转image_[转]故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题
作者:戴骏贤 网易游戏 技术部资深数据库系统工程师. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.问题起源 不久前用户反馈部门的 MySQL ...
- mysql主从数据丢失_故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题
作者:戴骏贤 网易游戏 技术部资深数据库系统工程师. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1. 问题起源 不久前用户反馈部门的 MySQ ...
- mysql主从(一)--搭建(GTID+row+增强半同步)
文章目录 1.主从搭建 1.1.mysql5.7 GTID+row+增强半同步 1.1.1.主从库环境准备 1.1.2.主库(3309)备份数据,在从库(3306)恢复 1.1.3.创建复制用户 1. ...
- 数据库周刊62丨央企2021年数据库成交公告,国产占90%;流数据库HStreamDB开源;MySQL主从双写导致数据丢失;Oracle 19c升级最佳实践;PG日常工作分享;MySQL MGR运维指
热门资讯 [1.中央国家机关2021年数据库成交公告:国产数据库份额占90% [摘要]据央采网3月19日发布的<中央国家机关2021年数据库软件协议供货采购项目成交公告>显示事务型数据库管 ...
- MySQL主从介绍、准备工作、配置主、配置从、测试主从同步、断电后恢复主从...
MySQL主从介绍 MySQL主从又叫做Replication.AB复制.简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步.MySQL主从是基于binlog的 ...
最新文章
- 手把手从零开始搭建k8s集群超详细教程
- java多态简单例子6_Java_6、面向对象——继承和多态
- 在线预览任务调度的实现
- 那些年帮助我们理解各种姿势、常见协议的大神动图
- PHP递归复制文件夹的类
- STM32基于AD5663的UV灯电压控制
- 算法每日一题--分治算法(二)-李富贵要上岸985
- vue过滤器的那点事
- eclipse连接数据库
- zz推荐的软件测试英文网站
- 你还在为Springboot服务吞吐量而烦扰吗?如何提升本文告诉你
- [转]C++异常处理 4
- 目标追踪论文之狼吞虎咽(1):VITAL算法
- 【转】PPT精典基础教程
- 安装GitHub安装步骤
- 计算机屏显内容超过屏幕了,电脑屏幕超出工作频率范围修复方法
- UC缓存的php格式视频,UC缓存视频变成本地mp4_下载视频怎么转换mp4_我的下载站
- 刑法285.286.287 条
- python 四象限图_如何快速绘制出四象限图?
- 【人因工程】熵值法与CRITIC法求权重
热门文章
- idea redis图形化_5.13redis图形化工具---idea中配置redis密码
- android+默认存储,Android 数据存储之SP存储,内部存储,外部存储
- 酒吧声场测试软件,做到以下几点 酒吧音响效果出奇的好
- go调用python脚本_谁能取代Python?我使用Go来部署机器学习模型的原因
- adb命令重置_android – 擦除数据/通过ADB恢复出厂设置
- Python Seaborn教程
- aws cloud map_Amazon EC2 – AWS Elastic Compute Cloud
- jquery 图像滑块_10个很棒的jQuery图像滑块插件
- mac安装rstudio_在Windows / Linux / Mac OS上安装R和RStudio入门
- Python检查字符串是否包含另一个字符串