mysql 主从错误情况
1,master 上删除一条记录是从库报错 找不到该记录
引起原因:master出现宕机或者从库已经删除。
解决方案:stop slave;set global sql_slave_skip_counter=1;start slave;
2,主键冲突
引起原因:master宕机或者从库宕机
解决方案:删除此主键,重新start slave;
3,update 时候slave上找不到次数据
引起原因:master宕机或者从库做了删除操作
解决方案:master上扎到次数据插入到从库
4,slave 中继日志损坏
引起原因:slave 宕机
解决方案:找到同步的位置,重置从库复制点
5,slave上同步位置大于主库现在位置
引起原因:主库宕机
解决方案:直接重置从库复制点到新的binlog里的新节点
6,binlog_ignore_db引起同步复制故障
解决方案:replicate_ignore_db代替

为什么主库宕机会引起主从不一致?
情况一:
mysql事务提交先刷新到binlog,然后刷新到redo log。当刷新到binlog后宕机,mysql下次启动时,由于redo log里没有该事务记录就回滚,
但二进制日志已经记录该事务信息,不会回滚,所以slave会和主库不一样。
XA事务可以保证 innodb redo log 和binlog一致性。innodb_support_xa=1解决此种情况,但影响性能

情况二:
当sync_binlog=0的情况,很容易出现主从异常
sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘
等待系统决定什么时候刷新,或者cache满了之后同步到磁盘
sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
当 sync_binlog=0的时候,一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失,即master binlog 文件的 flush log buffer 中的数据未刷新到磁盘。
但Slave IO 线程在读取master dump 线程的位置,一般是直接读取log buffer的,这个位置,可能远远大于binlog文件实际大小。
也就是当master出现宕机的时候,slave IO线程也许已经把master binlog buffer中的数据已经读到slave中继日志并在slave上执行,导致主库和从库出现不一样现象。
sync_binlog=1可以解决这种情况,但影响性能

mysql 主从错误情况与原因的更多相关文章

  1. mysql 主从错误以及监控

    同步中的常见的错误和处理 1.现象:在从库上面show slave status\G;出现下列情况,           Slave_IO_Running: Yes           Slave_S ...

  2. mysql主从延迟高的原因

    1.1.1故障1:从库数据与主库冲突 1 2 3 4 5 6 show slave status; 报错:且show slave status\G Slave_I/O_Running:Yes Slav ...

  3. mysql主从错误180301

    Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ...

  4. MySQL 主从错误

    1: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log fil ...

  5. mysql主从同步异常原因及恢复

    mysql主从同步异常原因及恢复 前言 mysql数据库做主从复制,不仅可以为数据库的数据做实时备份,保证数据的完整性,还能做为读写分离,提升数据库的整体性能.但是,mysql主从复制经常会因为某些原 ...

  6. MySQL主从配置详解

    一.mysql主从原理 1. 基本介绍 MySQL 内建的复制功能是构建大型,高性能应用程序的基础.将 MySQL 的 数亿分布到到多个系统上去,这种分步的机制,是通过将 MySQL 的某一台主机的数 ...

  7. Ubuntu mysql连接错误10060/10061的方法

    mysql 10060错误一般因为防火墙 ufw allow 3306; //允许外部访问3306端口ufw allow from 192.168.1.115;  //允许此IP访问所有的本机端口uf ...

  8. mysql主从同步原理及错误解决

    mysql主从同步的原理: 1.在master上开启bin-log日志功能,记录更新.插入.删除的语句. 2.必须开启三个线程,主上开启io线程,从上开启io线程和sql线程. 3.从上io线程去连接 ...

  9. MySQL主从失败 错误Got fatal error 1236解决方法

    --MySQL主从失败 错误Got fatal error 1236解决方法 ----------------------------------------------------2014/05/1 ...

随机推荐

  1. eoLinker-AMS开源版JAVA版本正式发布

    eoLinker-AMS开源版JAVA版本正式发布! eoLinker深感广大开发者的支持与厚爱,我们一直在努力为大家提供更多更好的接口服务.截止至2018年4月3日,eoLinker-AMS 开源版 ...

  2. 洛谷P1616 疯狂的采药【完全背包】

    题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说 ...

  3. SQL中的条件判断语句(case when zhen if,ifnull)用法

    简介: case具有两种格式.简单case函数和case搜索函数.这两种方式,可以实现相同的功能.简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式.还有 ...

  4. intellij idea 的历史版本

    开发工具intellij idea 的历史版本https://www.jetbrains.com/idea/download/previous.html

  5. 20190218-学习python使用shelve遇到raise error, "db type could not be determined"

    照书上敲代码,运行了提示raise error, "db type could not be determined",现场如下: ubuntu-vm:~/code/massageb ...

  6. 《团队名称》第八次团队作业:Alpha冲刺

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 代码敲不队 作业学习目标 (1)掌握软件测试基础技术(2)学习迭代式增量软件开发过程(Scrum) ...

  7. win7 VMware下安装centos和Ubuntu共存

      最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware ...

  8. 格式化LInux后开机进入grub怎么办

    问题:格式化Linux系统盘之后,重启进入grub 1.grub 引导进入windows系统 进入grub grub>rootnoverify (hd0,1) [可以使用Tab键( 比如 roo ...

  9. CODEVS——T 2618 核电站问题

    http://codevs.cn/problem/2618/  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description ...

  10. Jackson 过滤属性

    jackson过滤属性分为静态和动态两种. 静态如下: 定义两个Bean 先,这两个bean 是父子关系. public class User { private String name; priva ...