记一次mysql主从同步因断电产生的不能同步问题 1236 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> start 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> start 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了
记一次mysql主从同步因断电产生的不能同步问题 1236 1032的更多相关文章
- mysql主从同步因断电产生的不能同步问题
偶尔因为断电导致mysql slave 出现复制错误“Could not parse relay log event entry” Could not parse relay log event en ...
- MySQL主从同步、读写分离配置步骤
现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168. ...
- MySQL主从同步那点事儿
一.前言 关于mysql主从同步,相信大家都不陌生,随着系统应用访问量逐渐增大,单台数据库读写访问压力也随之增大,当读写访问达到一定瓶颈时,将数据库的读写效率骤然下降,甚至不可用;为了解决此类问题,通 ...
- 这次一定要教会你搭建Redis集群和MySQL主从同步(非Docker)
前言 一直都想自己动手搭建一个Redis集群和MySQL的主从同步,当然不是依靠Docker的一键部署(虽然现在企业开发用的最多的是这种方式),所以本文就算是一个教程类文章吧,但在动手搭建之前,会先聊 ...
- MySQL主从同步、读写分离配置步骤、问题解决笔记
MySQL主从同步.读写分离配置步骤.问题解决笔记 根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记: 现在使用的两台服务器已经 ...
- 部署mysql主从同步
mysql-day06 部署mysql主从同步 案例拓扑 • 一主.一从 – 单向复制时,建议将 ...
- MySQL主从同步配置
如果主从配置之前安装了云平台,请停止云平台后在进行mysql主从配置. 1. 登录master数据库,检查数据库端口防火墙设置,允许远程客户连接,如果没有,执行以下操作. 执行命令:iptables ...
- MySQL主从数据库同步延迟问题解决(转)
最近在做MySQL主从数据库同步测试,发现了一些问题,其中主从同步延迟问题是其中之一,下面内容是从网上找到的一些讲解,记录下来以便自己学习: MySQL的主从同步是一个很成熟的架构,优点为:①在从服务 ...
- 使用Percona Toolkit解决Mysql主从不同步问题【备忘】
由于各种原因,mysql主从架构经常会出现数据不一致的情况出现,大致归结为如下几类 1:备库写数据 2:执行non-deterministic query 3:回滚掺杂事务表和非事务表的事务 4:bi ...
随机推荐
- Spring Boot2(十一):Mybatis使用总结(自增长、多条件、批量操作、多表查询等等)
一.前言 上次用Mybatis还是2017年做项目的时候,已经很久过去了.中途再没有用过Mybatis.导致现在学习SpringBoot过程中遇到一些Mybatis的问题,以此做出总结(XML极简模式 ...
- 开源SFTP客户端 WinSCP v5.13.5 Build 8967 绿色便携版
下载地址:点我 基本介绍 WinSCP 是一款可以在微软 Windows 系统环境下使用的支持 SSH 命令的开源图形化 SFTP 客户端工具.同时也支持 SCP 文件传输协议,它的主要功能是在本地与 ...
- 绝对是全网最好的Splay 入门详解——洛谷P3369&BZOJ3224: Tyvj 1728 普通平衡树 包教包会
平衡树是什么东西想必我就不用说太多了吧. 百度百科: 一个月之前的某天晚上,yuli巨佬为我们初步讲解了Splay,当时接触到了平衡树里的旋转等各种骚操作,感觉非常厉害.而第二天我调Splay的模板竟 ...
- Linux系统下word转pdf,xls转pdf,ppt转pdf
word转换pdf的技术方案,供参考.[doc/docx/ppt/pptx/xls/xlsx均支持转换] 本方案是Java结合shell命令完成,不同于以往的仅依赖java组件转换 ...
- python函数知识四 迭代器、生成器
15.迭代器:工具 1.可迭代对象: 官方声明,只要具有__iter__方法的就是可迭代对象 list,dict,str,set,tuple -- 可迭代对象,使用灵活 #方法一: list.__ ...
- MYSQL数据库的安装,配置文件,登入
07.13自我总结 MYSQL数据库 一.MYQL数据库的安装 可以去mysql官网下载mysql压缩包 运行程序:在bin文件夹中,其中客户端运行文件是mysql.exe,服务端运行文件为mysql ...
- C#编程之JSON序列化与反序列化
1.在C#管理NuGet程序包中添加Json.NET 2.C#将对象序列化成JSON字符串 模型类1 /// <summary> /// JSON字符串模型.是否出错 /// </s ...
- GitLab-CI 来自动创建 Docker 镜像
1.what is gitlab-ci docker image CI/CD 自动化集成,自动化部署.简单的说就是把代码提交到gitlab管理的同时部署到指定的server,打成docker imag ...
- jQuery入门一(jQuery下载以及基本语法)
1. jQuery简介 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是 ...
- 深入理解Java中的AQS
AQS概述 AbstractQueuedSynchronizer抽象队列同步器简称AQS,它是实现同步器的基础组件,juc下面Lock的实现以及一些并发工具类就是通过AQS来实现的,这里我们通过A ...