MySQL主从复制
type
Post
status
Published
date
Feb 26, 2024
slug
mysql-master-slave-replication
summary
tags
MySQL
category
技术分享
icon
password
MySQL 主从复制(Master-Slave Replication)是一种数据复制技术,用于在多个数据库服务器之间的数据同步。在主从复制架构中,一个服务器被设置为主服务器(Master),充当数据源,其他服务器被设置为从服务器(Slave),用来复制主服务器的数据。
主从复制原理
MySQL 数据库的主从复制主要是基于 Binary Log(二进制文件,简称 bin log)实现的,它的视线流程如下:

它的主要执行流程如下:
- 主数据库接收到一个写操作(如 INSERT、UPDATE、DELETE)时,会将这个操作记录到二进制日志(Binary Log)中,将数据修改的操作按顺序记录下来。
- 从数据库 IO 线程会自动连接主服务器,从二进制日志中读取同步数据,记录到中继日志(Relay Log)中。
- 从数据库的 SQL 线程会定期从中继日志中获取同步数据,写入到数据库中。
主从复制优点
主从复制的主要优点有以下几个:
- 高可用性:通过将主数据库的数据复制到一个或多个从数据库,可以在主服务器故障时快速切换到从数据库,以实现系统的高可用性和容错能力,从而保证系统的持续可用性。
- 提高整体性能和吞吐量:通过将读请求分散到多个从服务器上进行处理,从而减轻了主服务器的负载压力,提高数据库系统的整体性能和吞吐量。主服务器主要负责写操作,而从数据库主要负责读操作,从而分担了主服务器的压力。
- 数据备份和恢复:通过主从同步,可以将主服务器上的数据异步复制到从服务器上,从而实现数据备份和灾难恢复的需求。在应对以为数据丢失、灾难恢复或无操作时,可以使用从服务器作为数据的备份源来进行数据恢复。
主从复制模式
MySQL 中主要有以下两种主从复制的模式,分别是异步复制和半同步复制。
异步复制
MySQL 主从复制中最常见和默认的模式。在异步复制模式中,主服务器将数据修改操作记录到二进制日志(Binary Log)中,并将日志传输给从服务器。从服务器接收到二进制日志后,会异步地应用这些日志进行数据服务。
- 优点:它的优点及时响应给使用者,主服务器不会收到从服务器的影响而等待确认,可以提高主服务器的性能。
- 缺点:由于是异步复制,可能存在数据传输的延迟,且从服务器上的复制过程是不可靠的。如果主服务器故障,尚未应用到从服务器的数据可以回丢失。
半同步复制
半同步复制是 MySQL 主从复制中一种增强模式。在半同步复制模式中,主服务器数据将数据修改操作记录到二进制日志,并等到至少一个从服务器确认已接收到并应用了这些日志后才继续执行后续操作。
- 优点:可以提供更高的数据一致性和可靠性,确保至少一个从服务器与主服务器保持同步。如果主服务器故障,已经确认接收并应用到从服务器的数据不会丢失。
- 缺点:由于半同步复制需要等到从服务器确认,因此相对于异步复制,会增加一定的延迟,可能会影响主服务器的性能。
如果对数据一致性和可靠性要求较高,可以考虑使用半同步复制;如果对延迟和主服务器性能要求较高,可以继续使用异步复制,根据实际需求调整复制模式。