温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

数据库主从同步原理是什么

发布时间:2026-10-27 07:26:43 来源:亿速云 阅读:118 作者:小樊 栏目:数据库

数据库主从同步(Master-Slave Replication)是指:将主库(Master)上的数据变更,实时或准实时地同步到一个或多个从库(Slave),常用于读写分离、高可用、备份等场景。

下面以最常见的 MySQL 主从同步 为例说明原理(其他数据库思想类似)。


一、核心原理概述

一句话:

主库记录变更日志 → 从库拉取日志 → 从库重放日志


二、MySQL 主从同步流程

1️⃣ 主库(Master)写 Binlog

  • 主库接收到写操作(INSERT / UPDATE / DELETE)
  • 先将变更记录到 Binary Log(binlog)
  • binlog 是“逻辑或物理”的变更日志
客户端 → 主库执行SQL → 写 binlog

2️⃣ 从库(Slave)启动 IO 线程

从库做两件事:

(1)IO 线程

  • 连接主库
  • 读取主库的 binlog
  • 写入本地 Relay Log(中继日志)
主库 binlog → 网络 → 从库 relay log

3️⃣ 从库 SQL 线程重放

  • 从库的 SQL 线程
  • 读取 relay log
  • 在从库上执行相同操作
relay log → 执行SQL → 从库数据更新

三、关键组件总结

组件 作用
binlog 主库变更记录
relay log 从库中转日志
IO 线程 拉取 binlog
SQL 线程 执行同步

四、同步模式(一致性级别)

1️⃣ 异步复制(默认)

  • 主库写完 binlog 就返回
  • 不保证从库一定收到
  • 性能最好,可能丢数据

2️⃣ 半同步复制

  • 主库等至少一个从库接收 binlog
  • 才返回成功
  • 平衡性能与一致性

3️⃣ 全同步复制

  • 所有从库都确认
  • 强一致,性能差

五、主从延迟问题

原因

  • 从库单线程重放
  • 大事务
  • 从库负载高

表现

  • 刚写主库,从库读不到

六、常见用途

  • ✅ 读写分离(主写从读)
  • ✅ 数据备份
  • ✅ 故障切换(高可用)
  • ✅ 数据分析不影响主库

七、简单类比

主库像“老师讲课并记笔记”
从库像“学生抄笔记并自己练一遍”


如果你愿意,我也可以:

  • 画一张 主从同步流程图
  • 讲 Redis / PostgreSQL 主从
  • 讲 主从延迟如何优化

你想看哪一个?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手