数据库备份方案
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/database-backup。
技能介绍
要解决的问题
数据库备份看起来一句话就能说完,真正落地全是细节:PostgreSQL 该用 pg_dump 还是 pg_basebackup?MySQL 选 mysqldump 还是 XtraBackup 热备?备份频率、保留周期、加密压缩、恢复验证,每一项都要和业务可接受的数据丢失窗口(RPO)与停机时间(RTO)对齐。这个技能负责把备份方案从拍脑袋变成一套可执行的脚本与策略。
核心能力与工作流程
技能按六步工作流推进:
- 评估需求:确认数据库类型、规模、RPO/RTO 指标,判断是否需要应用级锁或快照保证一致性。
- 选择策略:在全量、增量、差异和基于 WAL/oplog 的时间点恢复(PITR)之间权衡。
- 生成脚本:输出带压缩(
gzip、lz4、zstd)、可选加密(GPG、OpenSSL AES-256)、时间戳命名和错误处理的 Shell 脚本。 - 调度与保留:通过
cron或 systemd timer 定时执行,按日/周/月定义保留策略并自动清理过期备份。 - 验证完整性:检查备份文件非空且校验和有效,定期做恢复演练并对失败告警。
- 文档与监控:记录备份计划、存储位置与恢复步骤,接入 Prometheus 或邮件告警。
适用边界与注意点
- 数据库超过本地磁盘容量时,直接流式上传到对象存储,避免磁盘写满。
- 高并发写入场景:PostgreSQL 用
--snapshot、MongoDB 用--oplog,MySQL 用 XtraBackup 做热备。 - 启用 TDE 的加密数据库要单独备份密钥;从副本备份前需确认复制延迟接近零。
- 没有验证过的备份等于没有备份,恢复流程要在压力下可复现,别靠临场发挥。
使用场景
- 需要为 PostgreSQL 设置夜间全量备份,带压缩并保留 30 天的运维任务
- MongoDB 副本集需要生成备份脚本,并明确恢复操作步骤的工程师
- MySQL 实例要启用 binlog 做时间点恢复,尽可能降低数据丢失窗口的场景
- 数据库备份需要接入 cron 调度、保留策略与恢复验证的自动化流程搭建
适合人员
- 需要在生产环境部署数据库备份策略的运维工程师
- 负责数据安全、需要定期演练恢复流程的 SRE 或 DBA
- 为多数据库项目编写备份规范的开发团队负责人
- 需要为数据库备份脚本增加压缩加密和告警机制的后端工程师