冷备需停库,热备在线;冷备快但中断业务,热备连续但依赖工具。逻辑备份属半热备,兼容好但慢且有锁。

MySQL冷备和热备最核心的区别在于数据库是否在线运行。冷备必须停库,热备全程不停机;前者操作简单但业务中断,后者保障连续性但依赖工具和配置。
冷备:停库拷贝,快而稳
冷备要求MySQL服务完全关闭,再直接复制data目录下的所有物理文件(如.ibd、.frm、ib_logfile*等)。备份过程就是文件系统级的cp或tar操作。
- 优点:速度快、操作透明、恢复极简(替换文件+改属主属组为mysql即可)
- 缺点:备份窗口内业务彻底中断;无法按表/按库恢复;只能回到备份那一刻的状态,不能做时间点恢复
- 适用场景:开发测试环境、数据量小且允许停机的内部系统、或作为热备失败后的兜底手段
热备:在线同步,强而细
热备在MySQL持续提供读写服务时完成备份,主流方案是Percona XtraBackup(支持InnoDB),它通过拷贝数据文件+捕获redo日志实现一致性备份,不锁表也不阻塞事务。
- 优点:零业务中断;支持时间点恢复(结合binlog);可单库单表恢复;适合7×24生产环境
- 缺点:需额外安装工具;备份期间会增加I/O和CPU负载;对备份一致性校验和恢复验证要求更高
- 注意:MyISAM引擎不支持真正热备,仅能温备(锁表只读);XtraBackup 8.0+需匹配MySQL 8.0版本
逻辑备份(mysqldump)算热备还是冷备?
它属于半热备——数据库开着,但执行时默认会对表加全局读锁(--single-transaction可规避InnoDB锁,但仍有短暂FLUSH TABLES WITH READ LOCK)。导出的是SQL文本,不是二进制文件。
- 优势:跨版本兼容好、可编辑、支持过滤库/表、天然带结构与数据
- 劣势:备份慢(需SQL解析)、恢复更慢(重放SQL)、大库易超时、浮点精度可能丢失
- 建议:中小数据量(
怎么选?看业务容忍度
关键看三件事:能否接受停机、数据更新频率多高、有没有专职DBA维护。
- 不能停机 + 数据高频变更 → 必须热备(XtraBackup + binlog)
- 偶尔停机 + 数据静态为主 → 冷备足够,甚至可配合定时脚本自动停启
- 无专业运维 + 小型应用 → mysqldump定期全量 + binlog滚动归档,成本低、上手快










