逻辑备份 vs 物理备份
逻辑备份 (mysqldump)就像把数据库内容"写成一本书":
- mysqldump 把数据库里的数据转换成SQL语句(CREATE TABLE, INSERT等)
- 备份结果是文本文件,人类可读
- 恢复时相当于"重新执行"这些SQL语句
特点:
优点:兼容性好,可以跨版本/跨平台恢复
缺点:备份恢复慢(特别是大数据量),可能锁表
物理备份 (xtrabackup)就像复制数据库文件
- xtrabackup 直接复制数据库的物理文件(.ibd, .frm等)
- 备份结果是二进制文件 人类不可读
- 恢复时直接替换文件
特点:
优点:速度快(特别适合大数据库),热备份(不锁表)
缺点:通常只能在相同版本MySQL恢复
全量备份 vs 增量备份
全量备份:每次备份都"完整复制"整个数据库,就像每周给整个房子拍张完整照片
恢复简单(只需要最近一次备份)但是占用空间大
增量备份:只备份"上次备份后变化的部分"就像每天只拍房子里有变动的角落,
恢复复杂(需要全量备份+所有增量备份)占用空间小
时间点恢复 (PITR)
PITR (Point-In-Time Recovery) 就像"时间机器":
1.先恢复最近的全量备份(回到上周状态)
2.然后按顺序应用增量备份(恢复到昨天状态)
3.最后应用binlog(精确恢复到故障前1分钟)
binlog 是MySQL记录所有修改操作的日志,相当于数据库的"监控录像"。
实际应用建议
- 小数据库:用mysqldump每天全量备份
- 大数据库:用xtrabackup每周全量+每天增量
- 重要数据:开启binlog实现PITR
备份后要定期验证能否恢复成功