SuperAPI AI 工具集

database-backups

部署与运维

查看项目

更新于 10-19 01:56

技能介绍

用途

Database Backups 技能用于设计并落地数据库备份与恢复流程,覆盖策略制定、备份执行、异地存储、保留管理、定时调度和恢复验证。文档面向 PostgreSQL、MySQL、MongoDB,适合在新建数据库、编写灾备手册(runbook)或验证恢复能力时使用。

主要能力

  • 备份类型框架:全量(每周,恢复基线)、增量(每日,节省存储与时间)、事务日志/WAL(持续日志传送,支持时间点恢复 PITR)、快照(EBS、ZFS 等存储层快照,每日,快速全量恢复)。
  • PostgreSQL:pg_dump 自定义压缩格式逻辑备份(-Fc -Z6)与恢复(pg_restore,支持 --clean --if-exists、单表 -t、纯 SQL 用 psql 导入);pg_basebackup 物理备份,配合 --wal-method=stream、--checkpoint=fast 支持 PITR。
  • MySQL:mysqldump 逻辑备份(--single-transaction、--routines、--triggers、--events,管道 gzip);Percona XtraBackup 物理备份与 prepare;恢复涵盖 gunzip 管道导入与 xtrabackup --move-back 流程。
  • MongoDB:mongodump --gzip 备份;mongorestore 支持整库、单库(--db)、单集合(--collection)恢复,可配 --drop。
  • 异地存储:aws s3 cp 递归上传,使用 STANDARD_IA 存储类与 AES256 服务端加密;S3 生命周期策略示例(30 天转 GLACIER,365 天过期)并通过 put-bucket-lifecycle-configuration 应用。
  • restic 备份:S3 仓库初始化、加密去重备份、snapshots 列表、forget 保留策略(7 日/4 周/6 月)加 --prune、restore latest 恢复。
  • 定时调度:cron 示例,PostgreSQL 02:00、MySQL 02:30、MongoDB 03:00、S3 上传 04:00、本地清理保留 7 天、restic prune 每周日 06:00。
  • 恢复验证:verify_backup.sh 通过 Docker 启动临时 PostgreSQL 容器,拷贝并 pg_restore 备份,执行 COUNT 校验查询,失败时告警退出。
  • 统一编排:backup_all.sh 依次执行各库备份与上传,汇总错误数并通过 mail 发送告警。
  • 最佳实践:3-2-1 原则、静态加密、定期恢复测试、监控告警、记录 RTO/RPO、脚本纳入 Git、逻辑备份使用 --single-transaction、备份使用独立只读账号。
  • 故障排查:覆盖 pg_dump 连接数过多、mysqldump 大表卡住、mongodump 副本读取慢、S3 上传超时、restic prune 耗时、恢复报 role 不存在等问题的成因与处理方式。

使用方式

先安装数据库客户端工具(pg_dump、mysqldump、mongodump)、AWS CLI 或 restic,准备 cron 或 systemd 定时器及 S3 兼容存储桶;再按文档脚本替换库名、用户、路径与凭证(凭证从 vault 读取,勿硬编码),配置 cron 调度并接入日志与告警;最后定期运行恢复验证脚本。

适用场景

新数据库上线即建立备份方案、夜间或小时级自动化备份、备份异地归档与保留策略设计、灾备演练与恢复手册编写、多数据库统一备份编排。

限制

涉及基础设施的命令可能中断服务:执行前须确认目标主机与范围,并对数据目录做快照(恢复示例中包含清空 /var/lib/mysql 的操作)。该技能仅提供文档,上游脚本与模板未随包提供。具体平台、收费与价格信息暂未提供。