mysql主从复制原理(学习记录)

MySQL 主从复制是一种经典的数据库复制技术,用于在多个数据库服务器之间同步数据,确保数据的高可用性和可靠性。主从复制的基本原理如下

1. 主库写操作

在主从复制架构中,有一个主数据库(Master)和一个或多个从数据库(Slave)。所有的数据写操作(如 INSERTUPDATEDELETE)都在主数据库上执行。主库会将这些操作记录到其二进制日志(Binary Log)中

2. 二进制日志(Binary Log)

二进制日志是主库用于记录所有更改数据的操作日志。每当有数据变更时,MySQL 会将这次操作(包括语句、时间戳、事务相关信息等)记录到二进制日志中

3. 从库复制线程(I/O Thread 和 SQL Thread)

从库通过两个线程来执行复制过程:

  • I/O Thread(I/O 线程):这个线程从主库获取二进制日志,并将其保存到从库的中继日志(Relay Log)中。
  • SQL Thread(SQL 线程):这个线程读取中继日志中的内容,并在从库中执行这些SQL操作,从而使从库的数据与主库保持一致。

4. 数据同步

从库的SQL线程会按照主库的操作顺序执行中继日志中的SQL语句,确保从库的数据与主库的数据一致。这种复制过程通常是异步的,但也可以配置为半同步(Semi-Synchronous)模式。

5. 延迟与故障恢复

由于复制通常是异步进行的,主库的数据变更会有一个传播到从库的延迟时间。这种延迟通常很小,但在高负载或网络问题下可能会变长。主从复制还可以用于故障恢复,如果主库出现故障,可以将从库提升为新的主库。

优势与应用场景

  • 读写分离:主库处理写操作,从库处理读操作,分散数据库负载。
  • 高可用性:通过多个从库确保数据的冗余性,即使主库故障也能快速恢复。
  • 备份与恢复:从库可以用于备份,避免主库负载过重。

注意事项

  • 一致性:由于复制是异步的,存在从库短时间内数据不一致的可能性。
  • 性能:主库上的写操作过多或从库复制延迟过大会影响性能。
  • 配置复杂性:主从复制的配置与维护需要一定的经验和技术。

原理图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值