广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中主从不同步如何解决
  • 181
分享到

MySQL中主从不同步如何解决

2024-04-02 19:04:59 181人浏览 安东尼
摘要

本篇文章给大家分享的是有关Mysql中主从不同步如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。- 思维导图 -主从常见架构随着日益增长

本篇文章给大家分享的是有关Mysql中主从不同步如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

MySQL中主从不同步如何解决

- 思维导图 -

主从常见架构

随着日益增长的访问量,单台数据库的应接能力已经捉襟见肘。因此采用主库写数据,从库读数据这种将读写分离开的主从架构便随之衍生了出来。

在生产环境中,常见的主从架构有很多种,在这里给大家介绍几种比较常见的架构模式。

MySQL中主从不同步如何解决

MySQL中主从不同步如何解决

主从复制原理

了解了主从的基本架构及相关配置后,下面就要进入正题了。

对于主从来说,通常的操作是主库用来写入数据,从库用来读取数据。这样的好处是通过将读写压力分散开,避免了所有的请求都打在主库上。同时通过从库进行水平扩展使系统的伸缩性及负载能力也得到了很大的提升。

MySQL中主从不同步如何解决

但是问题就来了,读从库时的数据要与主库保持一致,那就需要主库的数据在写入后同步到从库中。如何保持主库与从库的数据一致性,主库又是通过什么样的方式将数据实时同步到从库的?

基本原理

mysql 中主从复制时有两个很重要的日志文件:

  • binlog(二进制日志文件)

  • relay log(中继日志文件)

MySQL中主从不同步如何解决

在主从同步的过程中,主库会将所有的操作事件记录在 binlog 中,从库通过开启一个 I/O 线程保持与主库的通信,并在一定时间间隔内探测 binlog  日志文件是否发生改变。如果 binlog 日志发生了变化,主库生成一个 binlog dump 线程向从库 I/O 线程传送 binlog。从库上的 I/O  线程将 binlog 复制到自己的 relay log 中。最终由从库中的 sql 线程读取 relay log 中的事件重放到从库上。

MySQL中主从不同步如何解决

主从延迟原因

上面的流程我们已经知道了主从复制的相关过程了,但是主库有更新就会同步从库,那为什么会出现主从延迟的情况呢?

随机重放

Mysql 主库中写 binlog 的操作是顺序写的,之前我们提到过,磁盘的顺序读写速度是很快的。同样的,从库中的 I/O  线程操作日志的速度效率也是很高的。但是别忘了,还有一个 SQL 线程来进行数据重放,而重放的过程是随机写盘的。到这里你应该就明白了吧,某一时刻 relay  log 里的数据来不及重放进从库,就会产生主从延迟的情况。

主库并发高

知道了从库中 SQL 线程的重放情况,对于主库并发高导致主从延迟肯定就不难理解了。某一时刻,大量写请求打到主库上,意味着要不断对 binlog  进行写入,此时从库中的 SQL 线程就会应接不暇,自然会产生主从延迟。

锁等待

对于 SQL  单线程来说,当遇到阻塞时就会一直等待,直到执行成功才会继续进行。如果某一时刻从库因为查询产生了等待的情况,此时只有当前的操作执行完成后才会进行下面的操作,同理也就产生了主从延迟的情况。

主从延迟处理

知道了主从延迟的原因,接下来我们看看如何来进行处理。

并行复制

既然 SQL 单线程进行重放时速度有限,那么能不能采用多线程的方式来进行重放呢?MySQL 5.6 版本后,提供了一种并行复制的方式,通过将 SQL  线程转换为多个 work 线程来进行重放,这样就解决了主从延迟的问题。

MySQL中主从不同步如何解决

降低主库并发

你可能会说了,我现在用的低版本的数据库,也没法升版本啊,那我怎么整。对于主库并发高的情况,这种方式你只能通过控制并发来解决延迟了,多用用  Redis

读主库

这种情况你肯定不陌生,对于一些实时性要求比较高的数据,你总不能读从库去拿吧,万一延迟个大半天,你不得贡献自己的年终奖啊。

总结

主从复制原理

  • 主从复制中有两个很重要的日志文件,binlog和relay log,分别位于主库与从库中。其中 binlog 是主从复制的基础,通过将操作事件写入  binlog 通过 I/O 线程传送至从库进行同步。

主从延迟原因

  • 从库中 SQL 线程重放的过程是随机写盘的,并且 SQL 线程是单线程的,因此数据来不及重放的话就会导致主从延迟。

  • 主库并发高会导致写操作不断写入 binlog,对于 SQL 线程说可能会应接不暇,也会产生主从延迟。

  • 重放过程中如果遇到锁等待也是产生延迟的原因之一。

主从延迟处理

  • MySQL 5.6版本以后通过并行复制的方式来解决 SQL  单线程产生的主从延迟问题。对于低版本来说,可以通过降低主库的并发来解决。如果对数据实时性要求比较严格的话,可以通过读主库来达到目的。

以上就是MySQL中主从不同步如何解决,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中主从不同步如何解决

本文链接: https://www.lsjlt.com/news/57999.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中主从不同步如何解决
    本篇文章给大家分享的是有关MySQL中主从不同步如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。- 思维导图 -主从常见架构随着日益增长...
    99+
    2022-10-18
  • 解决MySQL主从不同步问题
    解决mysql主从不同步今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist;   查看下进程是否Sleep太多。发...
    99+
    2022-10-18
  • mysql主从不同步问题解决
    环境介绍: ...
    99+
    2022-10-18
  • 应该如何解决mysql数据库主从不同步
    本篇文章给大家主要讲的是关于应该如何解决mysql数据库主从不同步的内容,感兴趣的话就一起来看看这篇文章吧,相信看完应该如何解决mysql数据库主从不同步对大家多少有点参考价值吧。今天发现Mysql的主从数...
    99+
    2022-10-18
  • 解决mysql两个主从不同步的办法
    下文给大家带来关于解决mysql两个主从不同步的办法,感兴趣的话就一起来看看这篇文章吧,相信看完解决mysql两个主从不同步的办法对大家多少有点帮助吧。       ...
    99+
    2022-10-18
  • 怎么解决Mysql主从不同步问题的
    本篇内容主要讲解“怎么解决Mysql主从不同步问题的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决Mysql主从不同步问题的”吧!由于各种原因,mysq...
    99+
    2022-10-18
  • MySQL主从复制架构实践:主从不同步的解决方案
    前言 大家好,我是沐风晓月,本文收录于《MySQL入门到精通》专栏,希望对你有用; 之前在做MySQL主从架构的时候,遇到了形形色色的问题,比如: 主从配置好之后,双yes的情况下,居然不能同步;切换...
    99+
    2023-10-25
    架构 服务器 运维 云原生 linux
  • MYSQL主从同步出现故障如何解决
    MYSQL主从同步出现故障如何解决,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 show global va...
    99+
    2022-10-18
  • mysql主从不同步报错Last_Errno 1197的解决方法
    本篇内容主要讲解“mysql主从不同步报错Last_Errno 1197的解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql主从不同步报错Last...
    99+
    2022-10-18
  • MySQL主从同步延迟怎么解决
    本文主要给大家简单讲讲MySQL主从同步延迟怎么解决,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望MySQL主从同步延迟怎么解决这篇文章可以给大家带来一些实...
    99+
    2022-10-18
  • MySQL如何不停机维护主从同步
    本篇文章给大家分享的是有关MySQL如何不停机维护主从同步,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实战环境 Mysql-5.7...
    99+
    2022-10-18
  • mysql主从为什么会不同步
    这篇文章主要为大家展示了“mysql主从为什么会不同步”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql主从为什么会不同步”这篇文章吧。 ...
    99+
    2022-10-19
  • MySQL中主从不一致如何解决
    MySQL中主从不一致如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、MySQL主从不同步情况1.1 网络的延迟由于mysql主从复...
    99+
    2022-10-18
  • mysql主从同步为何延迟及解决办法
    下文主要给大家带来mysql主从同步为何延迟及解决办法,希望这些内容能够带给大家实际用处,这也是我编辑mysql主从同步为何延迟及解决办法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。2.MySQ...
    99+
    2022-10-18
  • MYSQL主从不同步延迟原理分析及解决方案
    1. MySQL数据库主从同步延迟原理。要说延时原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作,主库对所有DDL和DML产生binlog,binl...
    99+
    2022-11-15
    MYSQL 不同步 延迟
  • mysql 如何关闭主从同步
    MySQL可以通过以下三种方法来关闭主从同步 1. 使用STOP SLAVE命令。这个命令会停止复制从主服务器的更新,直到使用START SLAVE命令恢复为止。可以在从服务器上使用以下命令: STOP SLAVE; 2. 使用RESET ...
    99+
    2023-08-23
    mysql 服务器 数据库
  • 如何搞懂MySql主从同步
    本篇内容主要讲解“如何搞懂MySql主从同步”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何搞懂MySql主从同步”吧! MySq...
    99+
    2023-03-06
    mysql
  • 【MySQL】MySQL主从同步延迟原因与解决方案
    文章目录 一、MySQL数据库主从同步延迟产生的原因二、关于DDL和DML三、主从延时排查方法四、解决方案3.1 解决从库复制延迟的问题:3.2 MySql数据库从库同步其他问题及解决方案 一、MySQL数据库主从同步延迟产...
    99+
    2023-08-19
    mysql 数据库 sql
  • MySQL主从同步常见报错的解决办法
    数据库主从同步的时候有两个线程:IO线程和SQL线程。常见的报错时围绕这两个线程出现的。 IO线程:把主库binlog日志的内容记录到本机的中继日志文件里。IO线程报错的原因有两个,第一是指定主库信息时参...
    99+
    2022-10-18
  • MySQL主从同步的简单理解
    MySQL主从同步的简单理解 许多大型网站为了减轻海量用户对于服务器并发访问量的性能问题,会使用很多解决的方案, 数据库主从分离,就是目前主流的一种解决手段。 想一下每个用户都通过控制层业务层调用服务器...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作