MySQL主从复制不一致的原因分析以及解决

 更新时间:2023年12月20日 09:59:41   作者:闭门车  
这篇文章主要介绍了MySQL主从复制不一致的原因分析以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MySQL主从复制不一致

今天继续讨论,MySQL主从复制什么原因会造成不一致问题

如何预防及解决

1.人为原因导致从库与主库数据不一致(从库写入)

2.主从复制过程中,主库异常宕机

3.设置了ignore/do/rewrite等replication等规则

4.binlog非row格式 

5.异步复制本身不保证,半同步存在提交读的问题,增强半同步起来比较完美。 但对于异常重启(Replication Crash Safe),从库写数据(GTID)的防范,还需要策略来保证。

6.从库中断很久,binlog应用不连续,监控并及时修复主从

7.从库启用了诸如存储过程,从库禁用存储过程等

8.数据库大小版本/分支版本导致数据不一致?,主从版本统一

9.备份的时候没有指定参数 例如mysqldump --master-data=2 等

10.主从sql_mode 不一致

11.一主二从环境,二从的server id一致。

12.MySQL自增列 主从不一致

13.主从信息保存在文件里面,文件本身的刷新是非事务的,导致从库重启后开始执行点大于实际执行点

预防措施介绍

1.master:innodb_flush_log_at_trx_commit=1&sync_binlog=1

2.slave:master_info_repository="TABLE"&relay_log_info_repository="TABLE"&relay_log_recovery=1

3.设置从库库为只读模式

4.可以使用5.7增强半同步避免数据丢失等

5.binlog row格式

6.必须引定期的数据校验机制

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql回表致索引失效案例讲解

    mysql回表致索引失效案例讲解

    这篇文章主要介绍了mysql回表致索引失效案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • MySQL数据库实现统计所有表的空间占用与行数

    MySQL数据库实现统计所有表的空间占用与行数

    这篇文章主要为大家详细介绍了MySQL数据库实现统计所有表的空间占用与行数的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-02-02
  • Linux系统中MySQL的常用操作命令

    Linux系统中MySQL的常用操作命令

    本文给大家汇总介绍了下载Linux系统中操作mysql的一些常用的命令,非常实用,有需要的小伙伴可以参考下
    2018-02-02
  • mysql8.0 用户角色管理及授权的实现

    mysql8.0 用户角色管理及授权的实现

    MySQL是一种常见的关系型数据库管理系统,它提供了强大的安全机制来管理用户权限,本文主要介绍了mysql8.0 用户角色管理及授权的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • MySql超详细讲解表的用法

    MySql超详细讲解表的用法

    这篇文章主要为大家详细介绍了MySQL数据库中表常用的一些操作方法,文中的示例代码讲解详细, 对我们学习MySQL有一定帮助,需要的可以参考一下
    2022-09-09
  • Win10安装mysql8.0.15 winx64及连接服务器过程中遇到的问题

    Win10安装mysql8.0.15 winx64及连接服务器过程中遇到的问题

    这篇文章主要介绍了Win10安装mysql8.0.15 winx64及连接服务器过程中遇到的问题,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • MySQL中START REPLICA语句的具体使用

    MySQL中START REPLICA语句的具体使用

    MySQL从8.0.22版本开始引入了START REPLICA语句,替代了原来的START SLAVE语句,本文主要介绍了MySQL中START REPLICA语句的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • 从源码到实战盘点MySQL中不写Binlog的N种场景

    从源码到实战盘点MySQL中不写Binlog的N种场景

    Binlog(二进制日志)是MySQL的核心组件,负责记录数据变更,支撑着主从复制、数据恢复等重要功能,本文将深入MySQL源码,彻底解析哪些场景下MySQL不会写入binlog,希望对大家有所帮助
    2026-02-02
  • mysql提示[Warning] Invalid (old?) table or database name问题的解决方法

    mysql提示[Warning] Invalid (old?) table or database name问题的解决方

    今天一个朋友的上服务器出现[Warning] Invalid (old?) table or database name问题,通过分析binlog日志发现,在以下sql语句中出现问题,由于涉及敏感内容,用sql语法表示
    2012-07-07
  • Mysql最新版本的数据库安装教程(5.7)

    Mysql最新版本的数据库安装教程(5.7)

    这篇文章主要为大家详细介绍了Mysql最新版本的数据库安装教程,分享了Mysql 5.7安装配置方法,感兴趣的小伙伴们可以参考一下
    2016-07-07

最新评论