• MySQL常见的主从复制错误有哪些?如何处理?


    MySQL常见的主从复制错误有哪些?如何处理?
    
    
    一、1032错误
    1032错误即从库比主库少数据,分为UPDATE场景和DELETE场景。
    UPDATE场景处理思路是:
        1、主要处理思路是将丢失的数据在从库补上。
        2、找到sql_thread停止位置(Relay_Master_Log_File + Exec_Master_Log_Pos)
        3、去主库解析对应位置binlog,获取到UPDATE相关的数据。
        4、在slave上插入数据。
        5、重启sql_thread
    
    DELETE场景处理思路:
        1、主要的处理思路就是跳过该事务。
        2、非GTID环境下通过设置sql_slave_skip_counter=1跳过该事务。
        3、GTID环境下通过注入空事务方式跳过该事务,简要步骤如下:
            3.1set gtid_next='xxx';
            3.2begin;commit;
            3.3set gtid_next='AUTOMATIC';
            3.4、详细可参考:http://imysql.com/2014/07/31/mysql-faq-exception-replication-with-gtid.shtml
        4、重启sql_thread
    
    
    二、1062错误。
    1062错误即从库比主库多数据(主键冲突情况)。
    处理思路比较简单,即删除对应的主键冲突数据即可:
        1、删除从库上对应的数据(根据主键)。
        2、重启sql_thread
    
    
    三、1236错误
    1236错误即从库需要开始同步的binlog位置已经不存在主库上,该错误出现分几种情况。
        1、GTID从库需要开始复制的GTID要比主库上已经purged GTID位置要小。
        2、GTID从库GTID_SET比主库上缺失部分(如主库有多个GTID_SET,而从库只有一个)。
        3、非GTID环境下,从库去拉binlog的时间找不到对应的binlog(即从库当前的binlog比主库最旧的binlog之间存在缺失)。
    
    
    那么对应的处理方式是:
        1、对于1、3两种情况,建议是直接通过备份的方式直接重新做主从。
        2、对于第2种情况,可以通过set global gtid_purged='xxx'的方式将差异的GTID_SET部分补全。
  • 相关阅读:
    【BZOJ1010】【HNOI2008】玩具装箱
    【BZOJ1009】【HNOI2008】GT考试
    【BZOJ1008】【HNOI2008】越狱
    【BZOJ1007】【HNOI2008】水平可见直线
    【BZOJ1006】【HNOI2008】神奇的国度
    (考研)生产者消费者问题(赋代码)
    (考研)(精华)二叉树的知识结构图以及各种特殊的二叉树
    二叉树新的一种新建思路和遍历思路
    (简单但不容易写全对)逆置数组
    (经典)二叉树的层次遍历和快速排序
  • 原文地址:https://www.cnblogs.com/zhouwanchun/p/13141983.html
Copyright © 2020-2023  润新知