主从复制不是备份,无法实现时间点恢复或数据兜底;它仅用于读扩展与高可用,存在延迟、不一致及不可逆等缺陷,而备份需可验证、可还原、离线独立,二者目标与机制根本不同。
主从复制不是备份,它不提供时间点恢复能力,也不能替代备份。 你删库了、误update全表了、主库磁盘炸了——这些场景下,仅靠从库几乎无法挽回。复制是“同步”,备份是“存档”,目标和机制完全不同。
主从复制:实时同步,但不可逆、有延迟、可能不一致
MySQL 主从复制本质是异步重放 binlog:主库写入 binlog,从库用 I/O thread 拉取并写入 relay log,再由 SQL thread 执行。它解决的是读扩展、高可用切换、负载分担,不是数据兜底。
- 延迟真实存在:网络抖动、大事务、从库性能差都会导致
Seconds_Behind_Master持续增长,甚至卡住 - 语句级复制(
STATEMENT)在NOW()、UUID()、用户变量等场景下必然产生主从不一致 - 行级复制(
ROW)虽更安全,但遇到全表 update 会生成海量日志,压垮磁盘 IO 和网络带宽 - 从库一旦开启写入(比如没设
read_only=ON),立刻脱离复制一致性,变成“脏副本”
备份:可回退、可验证、可离线,但需要主动管理
备份是把某时刻的数据状态固化下来,关键在于「可还原」和「可验证」。它不依赖主库持续运行,也不怕网络中断。