• 问题系列~主从复制异常的案例


    简介 mysql主从不同步的几种情况
     1 错误问题:
        Could not execute Write_rows event on table practice.temp_baofoo_unbind; Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again, Error_code: 1197; Writing one row to the row-based binary log failed, Error_code: 1534; handler error HA_ERR_RBR_LOGGING_FAILED; the event's master log binlog.000017, end_log_pos 268602107
    问题原因: 主从变量不一致
    解决方式:保证主库和从库相关变量一致性
    2 错误问题
             1  Could not execute Delete_rows event on table hcy.t1; Can't find record in 't1',  
             2  Could not execute Write_rows event on table hcy.t1;  Duplicate entry '2' for key 'PRIMARY'
    问题原因:经典的数据错乱问题导致,可能造成的原因有几个
    1 在从库进行了DML操作
    2 从库应用relay-log发生了异常
    解决方式:
    1 利用binlog回滚语句在从库进行回滚操作,保证从库的read_only
    2 重做从库本身,因为可能后续还有一系列的复制异常
        3  错误问题
              1 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
    问题原因:从库去寻找需要的binlog日志,但是主库已经删除
    解决方式:利用主库备份一份新的实例,从新搭建从库
      4 错误问题
      Got fatal error 1236 from master when reading data from binary log: 'Cannot replicate anonymous transaction when AUTO_POSITION = 1
         问题原因:匿名事务(anonymous transaction ) 的生成是无法生成全局GTID的
        解决方式:  1  重新在从库执行匿名事务.然后重启slave线程即可 2 严格控制开发行为,不允许手动更改环境变量
       5 错误问题
    1 Relay log write failure:could not queue event from master
    问题原因:
    1 master的binlog本身不完整(比如主库的磁盘写满,io出现问题)
    2 master的binlog本身存在大事务导致,前面还会提示一个hearbeat loss的错误在日志中
    解决方式: 1 修复主库的相关问题 2 尽量减少主库用大事务的机会

  • 相关阅读:
    Android工具
    Android工具-DDMS
    Android ADB
    Windows FILETIME 与UNIX时间的转换
    <转>git,github在windows上的搭建
    国内的 Faas 云服务 -- Serverless 收集
    APICloud终于承认侵权并向DCloud道歉了(2019-11-26),知识产权!
    微信及钉钉等小程序开发的可视化工具
    C#的建造者设计模式(Builder),及Aspnet Core的源代码
    AspNet Core 3 的通用主机学习
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/14166759.html
Copyright © 2020-2023  润新知