首页 > 社交 > 科普中国

什么是MySQL主从复制?

常驻编辑 科普中国 2022-09-25 主从   线程   变量   语句   命令   模式   服务器   文件   数据   日志

问题描述

在程序上线运行一段时间之后,随着用户量的逐渐增多,单台MySQL开始无法承受所有的压力,为了承载更大的数据库并发,避免单台MySQL宕机,即无法正常提供服务,出现整体应用程序崩溃的情况,此时需要使用MySQL集群,此阶段会出现的典型问题如下:VAW拜客生活常识网

(1)在生产环境中,当MySQL处于运行状态时应如何备份当前数据?VAW拜客生活常识网

(2)在某场景下,某个接口需要锁表以便修改数据,而其他读取的线程都处于阻塞等待状态,此时应如何对其进行优化?VAW拜客生活常识网

(3)并发读取越来越多,单台无法满足业务需求,如何进行处理?VAW拜客生活常识网

问题分析与解决方案

针对在问题描述中提出的问题,都可以使用MySQL主从复制解决。MySQL主从复制是最常见的解决单台MySQL性能瓶颈的方案之一。在业务复杂的系统中,架构的发展导致业务量越来越大、I/O访问次数越来越多,单台MySQL开始无法满足需求,此时就需要做多库的存储,以便降低磁盘I/O的访问次数,提高单台I/O的访问性能。VAW拜客生活常识网

MySQL主从复制原理

MySQL主从复制指我们可以把数据从一个MySQL服务器(主服务器、主节点)复制到一个或多个从节点,即从节点可以复制主服务器中的所有数据库实例、特定数据库实例或特定表等。MySQL默认采用异步的复制方式,也就是说,从节点无须一直访问主服务器,而是可以在远程服务器上更新自己的数据。VAW拜客生活常识网

主服务器也叫作master服务器。当主服务器上的数据发生改变时,主服务器会将数据的更改记录存储在二进制日志中。VAW拜客生活常识网

从服务器也叫作slave服务器。从服务器会定期对主服务器上的二进制日志进行探测,观测其是否发生了改变。如果主服务器上的数据发生了改变,则从服务器会启动一个I/O线程,请求更新数据,具体过程如下所示:VAW拜客生活常识网

  • (1)客户端SQL更新命令。
  • (2)主服务器执行SQL语句。
  • (3)主服务器写二进制日志。
  • (4)从服务器启动I/O线程。
  • (5)从服务器从I/O线程写盘(relay-log)。
  • (6)从服务器启动SQL线程读(relay-log)。
  • (7)从服务器执行更新命令(relay-info)。

1. 部署过程中需要注意的事项VAW拜客生活常识网

(1)主服务器和从服务器中的MySQL版本必须相同,否则可能出现未知的异常与错误VAW拜客生活常识网

(2)主服务器和从服务器的时间必须同步,否则两个线程的时间节点可能对不上,导致同步数据失败。VAW拜客生活常识网

(3)在MySQL中,一般最少包含两个从服务器。当主服务器与从服务器的数据不同时,可以与第三方进行参照。VAW拜客生活常识网

2. MySQL主从复制的架构拓扑VAW拜客生活常识网

(1)一主一从:一主一从指一台服务器作为主服务器(M),另一台服务器作为从服务器(S)。主服务器负责写入或读取数据,从服务器只负责读取数据,并且从服务器会从主服务器上下载数据。一主一从使用场景较为有限,更多的时候是使用一主多从的形式,即主从复制至少由三台服务器组成(一台主服务器和两台从服务器)。当一台服务器的数据出现异常时,可以参考其他服务器上的数据。

相关阅读:

  • 开播就是榜单第一,豆瓣好评不断,《二进制恋爱》短短8集
  • 又来一个,85花咋都爱搞姐弟恋啊?
  • 爱让我们燃起生活的希望
  • 小而全,好用的功能统统给你:iWALK糖果真无线耳机
  • 庆余年开播,书粉们可还满意?
  • 常见的缓存问题及解决方法
  • 集合篇
  • 华硕天选3游戏本
  • Spring
  • 管理订单状态,该上状态机吗?
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。