数据库备份核心目标:可恢复、可校验、定时执行、异地留存、定期演练恢复,不能只做备份不验证恢复,否则备份等于无效。下面分备份类型、主流数据库实操、备份策略、风险点、最佳实践来讲。
一、备份的两大类
1. 物理备份(冷备份 / 热备份)
直接复制数据库磁盘数据文件、日志文件,速度快,适合大数据量。
冷备份:数据库停止服务,拷贝数据目录。简单,业务中断,适合低峰维护窗口。
热备份:数据库运行中备份,不中断业务。
MySQL:
xtrabackupPostgreSQL:
pg_basebackupopenGauss:
gs_basebackup
优点:备份恢复速度快;缺点:跨版本迁移兼容性差,只能完整实例恢复。
2. 逻辑备份(导出 SQL / 数据)
导出表结构 + 数据,生成 SQL 或文本文件。
MySQL:
mysqldumpPostgreSQL/openGauss:
pg_dump
优点:可单库、单表导出,跨版本迁移友好;缺点:大库慢,消耗 CPU 内存。
二、核心备份策略(生产环境推荐组合)
1. 全量备份
把整个数据库全部备份一份。
频率:中小库每日;TB 级大库每周一次全量。
2. 增量备份
只备份上次备份之后变化的数据,备份体积小速度快。
MySQL binlog、PG WAL 归档、openGauss WAL 归档本质就是增量。
恢复逻辑:全量备份 + 增量日志回放,恢复到任意时间点(PITR),这是生产最重要能力。
3. 差异备份
备份自上次全量之后所有变更;对比增量:增量依赖多份增量文件,差异只需要全量 + 一份差异包。
✅生产黄金组合:定期全量备份 + 持续归档增量日志,实现时间点恢复 PITR
三、主流数据库常用备份命令示例
MySQL / MariaDB
1)逻辑备份 mysqldump
bash
# 全库备份
mysqldump -u root -p --all-databases --single-transaction --routines --triggers > full_backup_$(date +%Y%m%d).sql
--single‑transaction:InnoDB 热备,不加锁,不阻塞业务。
2)物理热备 percona‑xtrabackup
bash
#完整备份
xtrabackup --backup --target-dir=/backup/full-$(date +%Y%m%d) -u root -p
3)开启 binlog,作为增量,实现 PITR。
PostgreSQL / openGauss
1)逻辑单库备份
bash
pg_dump -U postgres -d dbname -F c -f db_backup_$(date +%Y%m%d).dump
2)物理全量备份
bash
pg_basebackup -D /backup/pg_full -Ft -z -P
3)开启 WAL 归档,持续归档 WAL 文件,支持时间点恢复。
Redis
RDB:定时快照(全量)
AOF:持续记录写命令(增量)
生产建议同时开启 RDB+AOF。
四、备份文件管理(非常容易被忽略)
压缩:备份完成立刻压缩,节省磁盘
tar zcvf full_backup_20260819.tar.gz full_backup_20260819.sql
校验备份完整性
逻辑备份:检查文件大小,md5sum 生成校验码留存
md5sum full_backup.sql > full_backup.md5物理备份:工具自带校验;一定要定期做恢复测试,文件存在≠备份可用。
保留周期:不要无限存备份,配置自动清理。例:保留 30 天备份,超期自动删除。
异地备份:不要只存在数据库本机磁盘。同步到对象存储 MinIO、NAS、另一台服务器。本机磁盘损坏备份全部丢失。
工具:rclone、rsync 把备份文件推送到远端存储。
五、自动化与定时调度
Linux crontab 定时执行备份脚本
备份脚本增加告警:备份失败发送邮件 / 钉钉告警,不能默默失败。
脚本伪逻辑:
plaintext
1.执行备份
2.压缩文件
3.生成md5校验
4.同步备份文件到异地存储
5.清理过期本地备份
6.判断每一步返回码,失败触发告警
六、恢复演练(重中之重)
很多事故:备份文件损坏,业务故障才发现无法恢复。
每季度至少做一次恢复演练:把备份在测试库完整恢复,验证数据条数、业务可访问。
PITR 时间点恢复:用全量备份 + 增量日志,恢复到误删数据之前时刻,用来应对误删表、误更新。
七、不同场景选型建议
八、常见踩坑
只做逻辑备份,忘记开启 binlog/WAL,无法恢复到任意时间点,只能恢复备份时刻数据。
备份存在同一台机器硬盘,硬盘损坏备份全部丢失。
备份脚本没有错误判断,备份失败无告警,以为一直在备份。
MyISAM 引擎使用 mysqldump 不加锁,备份数据不一致。
备份后从来不做恢复测试。
九、简短总结有效备份的标准清单
根据库大小选择物理 / 逻辑备份,配置全量 + 增量日志归档,支持 PITR 时间点恢复
备份文件压缩,生成 md5 校验
备份副本异地存储,不要只留本机
定时自动化执行,失败告警
设置备份过期清理策略
定期执行恢复演练,验证备份真实可用
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢