zoukankan      html  css  js  c++  java
  • MySQL主从复制主从之间数据不一致的原因和解决

    面试被问到主从复制的主和从之间的数据不一致的原因,以及解决方法,当时没答出来,一是确实没有思考过这个问题,二来也有些因为紧张,没有想到。后来再次回想自己所学习的主复制的过程,应该有这几个原因:

    • 主从之间存在防火墙或selinux阻拦,从服务器没法到主服务器上拿到数据;
    • 在搭建主从复制架构的时候没有进行一次数据同步
    • 网络的延迟
    • 数据量太大

    解决的方法:

    • 关闭防火墙和selinux

      service firewalld stop
      systemctl disable firewalld.service
      setenforce 0
      sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
      
    • 再进行一次数据同步

      # 进入主库,进行锁表,防止数据写入
      mysql> flush tables with read lock;
      
      # 备份主服务器上的数据
      mysqldump -uroot -p --all-databases > backup.sql
      # scp backup.sql root@xxx.xxx.xxx.xxx:~
      
      #在从服务器上导入数据
      mysql -uroot -p < /root/backup.sql 
      
    • 网络的问题。。。

    • 数据量太大,可以配置负载均衡,如配置读写分离。

    查了一下资料,主从复制不一致的原因还有可能是以下的原因:

    1. 从库写入

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

    3. 主库的max_allowed_packet参数比从库大,一个较大的SQL语句在从库上无法执行

    4. 主数据库版本高于从数据库

      解决方案:低版本做主库,高版本做从库

  • 相关阅读:
    DeflateStream类
    BufferedStream类
    FileStream类
    Asp.net MVC Comet 推送
    MVC 读书笔记
    MVC部署
    MVC系统过滤器、自定义过滤器
    MVC 路由规则
    MVC 模型绑定
    边双+点双模板
  • 原文地址:https://www.cnblogs.com/CharrammaBlog/p/13641369.html
Copyright © 2011-2022 走看看