MySQL常见问题以及解决方法

MySQL常见问题以及解决方法

  1. 数据损坏或丢失
  2. serverid不唯一
  3. 主从节点存在复制延迟
  4. 主从节点数据不一致
  5. 数据表主键冲突
数据损坏或丢失
  • Master:采用MHA+semisync replication的方式解决
  • Slave:重新复制
serverid不唯一

重新复制

主从节点存在复制延迟:

通过需要额外的监控工具的辅助

主从节点数据不一致:

通过手动备份数据不一致的表来实现数据的同步。在从库发现某几张表与主库数据不一致,而这几张表数据量也比较大,手工比对数据不现实,并且重做整个库也比较慢,这个时候可以只重做这几张表来修复主从不一致
注意:在执行导入期间需要暂时停止从库复制

范例:A,B,C这三张表主从数据不一致
1、从库停止Slave复制
mysql>stop slave;

2、在主库上dump这三张表,并记录下同步的binlog和POS点
mysqldump -uroot -pmagedu -q --single-transaction --master-data=2 testdb A B C >/backup/A_B_C.sql

3、查看A_B_C.sql文件,找出记录的binlog和POS点
head A_B_C.sql
例如:MASTERLOGFILE='mysql-bin.888888', MASTERLOGPOS=666666;
#以下指令是为了保障其他表的数据不丢失,一直同步直到那个点结束,A,B,C表的数据在之前的备份已经生成了一份快照,只需要导入进入,然后开启同步即可

4、把A_B_C.sql拷贝到Slave机器上,并做指向新位置
mysql>start slave until MASTERLOGFILE='mysql-bin.888888', MASTERLOGPOS=666666; 5、在Slave机器上导入A_B_C.sql

mysql -uroot -predhat testdb

mysql>set sql_log_bin=0;

mysql>source /backup/A_B_C.sql

mysql>set sql_log_bin=1; 6、导入完毕后,从库开启同步即可。

mysql>start slave;
START SLAVE UNTIL:将数据同步到指定二进制日志的指定位置

例如:START SLAVE UNTIL MASTER_LOG_FILE='上一步中服务器B日志名称', MASTER_LOG_POS=上一步中服务器B日志位置;

表示将使用 START SLAVE UNTIL 语句将数据同步到服务器B的日志位置:
造成数据不一致的原因:
  1. 二进制日志格式问题:Master的二进制日志格式为Statement,同步到从库执行后可能造成主从不一致
  2. master关闭二进制日志:主库执行更改前有执行set sql_log_bin=0,会使主库不记录binlog,从库也无法变更这部分数据
  3. 从节点未设置只读,误操作写入数据
  4. 主库或从库意外宕机,宕机可能会造成binlog或者relaylog文件出现损坏,导致主从不一致
  5. 主从实例版本不一致,特别是高版本是主,低版本为从的情况下,主数据库上面支持的功能,从数据库上面可能不支持该功能
  6. MySQL自身bug导致
如何避免主从不一致
  1. 主库binlog采用ROW格式
  2. 主从实例数据库版本保持一致
  3. 主库做好账号权限把控,不可以执行set sql_log_bin=0
  4. 从库开启只读,不允许人为写入
  5. 定期进行主从一致性检验

Original: https://www.cnblogs.com/heyongshen/p/16732621.html
Author: 背对背依靠
Title: MySQL常见问题以及解决方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578570/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • springboot2 整合 redis 并通过 aop 实现自定义注解

    1,相关依赖 pom.xml 片段 org.springframework.boot spring-boot-starter-aop org.springframework.boo…

    Linux 2023年5月28日
    0110
  • Xshell的快捷键【转】

    删除ctrl + d 删除光标所在位置上的字符相当于VIM里x或者dlctrl + h 删除光标所在位置前的字符相当于VIM里hx或者dhctrl + k 删除光标后面所有字符相当…

    Linux 2023年5月28日
    095
  • redis的间隔性速度慢的问题

    php操作redis,偶尔间歇性很慢.查看redis日志发现:Asynchronous AOF fsync is taking too long (disk is busy?). …

    Linux 2023年5月28日
    091
  • alloc_pages的实现浅析

    alloc_pages的使用 struct page *alloc_pages(gft_t gfp, unsigned int order) alloc_pages定义于 inux…

    Linux 2023年6月7日
    0113
  • oracle 触发器trigger(主键自增长)

    触发器我们也可以认为是存储过程,是一种特殊的存储过程。 存储过程:有输入参数和输出参数,定义之后需要调用 触发器:没有输入参数和输出参数,定义之后无需调用,在 适当的时候会自动执行…

    Linux 2023年6月7日
    096
  • go将青龙面板里面的脚本文件都下载到本地

    纯粹练手用的,大家轻喷青龙面板的脚本文件可以下载到本地,这样的话自己可以研究一下对应的脚本文件,能学到更多的知识,原理其实很简单,F12一下就知道了,青龙面板使用Request H…

    Linux 2023年6月7日
    0151
  • 一文入门Qt Quick

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/dvamU6q5lZQb5hztfD2zNg 初识…

    Linux 2023年6月6日
    0128
  • Redis集群-Cluster模式

    1.为什么需要分片集群?它解决了什么问题? Redis从单个节点的架构方式演变到主从模式,提高了数据的可靠性以及相对较弱的高可用性;从主从模式到哨兵模式将高可用性提升到了一个新的高…

    Linux 2023年6月7日
    0121
  • Docker部署Redis

    执行以下命令,创建并启动镜像。如果本地没镜像,会自动拉取 docker run \ -itd \ –restart=always \ –name=redis \ -p 6379…

    Linux 2023年6月7日
    089
  • VMware服务关闭后一定要重启

    重要的事情说三遍:服务暂时关闭记得重启,服务暂时关闭记得重启,服务暂时关闭记得重启!!! VMware服务由于安装补丁的需要我暂时把服务关闭了,于是我遇到了尴尬的一幕,于是乎发现上…

    Linux 2023年6月7日
    0121
  • 存储过程,存储函数(Oracle)

    –打印hello world create or replace procedure sayhelloworld as –说明部分 begin dbms_output.put_…

    Linux 2023年6月14日
    087
  • 关于如何在window下执行SQLSERVER的定时备份

    引言 在使用SqlServer Express 版本的时候发现,这个版本不支持通过数据库的代理方式进行数据库的维护。 解决方案 使用SQL语句加windows任务计划的方式解决具体…

    Linux 2023年6月14日
    0102
  • 聊聊消息中心的设计与实现逻辑

    厌烦被消息打扰,又怕突然间的安静; 一、业务背景 微服务的架构体系中,会存在很多基础服务,提供一些大部分服务都可能需要的能力,比如文件管理、MQ队列、缓存机制、消息中心等等,这些服…

    Linux 2023年6月14日
    098
  • 数据结构简单话(一)线性表

    前言 逻辑结构 物理存储结构 一、顺序表 二、链表 总结 前言 本菜鸟笔者打算入门一下数据结构,在学习过程中通过自己简单话术总结相关基础知识要点,希望能帮助同样在入门的小伙伴们快速…

    Linux 2023年6月7日
    0137
  • 微信小程序全局变量的设置、使用、修改过程解析

    微信小程序全局变量的设置、使用、修改过程解析 全局变量的设置 在miniprogram > app.js 文件中设置,globalData对象就是存储全局变量的。 php;g…

    Linux 2023年6月7日
    0114
  • VirtualBox安装Ubuntu教程

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 准备工作 virtualBox可在官网下载,Ubuntu镜像可在 阿里云下载,选择对应电脑位数的镜像。 开始安装 1、点击&#8…

    Linux 2023年5月27日
    0189
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球