Skip to content

11.9 备份与恢复 ​

概述

备份三件套:数据库(核心)、upload 目录(业务资产)、配置与 .env(密钥)。Redis 不需备份(缓存可重建)。定期演练恢复比备份本身更重要。

备份对象与策略 ​

对象方式频率建议
MySQLmysqldump / xtrabackup / 云快照全量每日 + binlog 增量(按 RPO 定)
upload 目录rsync / 对象存储同步每日增量
config.yaml + .env纳入配置库(.env 用加密通道)变更时
Redis不备份丢失后自动重建缓存(注意黑名单语义变弱)

mysqldump 示例 ​

bash
# 全量
mysqldump -uroot -p --single-transaction --routines \
  easygoadmin.gin.elevue | gzip > backup_$(date +%F).sql.gz

--single-transaction 保证 InnoDB 一致性快照、不锁表。

恢复演练 ​

bash
gunzip < backup_2026-10-25.sql.gz | mysql -uroot -p easygoadmin.gin.elevue

恢复后验证:

  • [ ] 表数量与关键表行数
  • [ ] 超管可登录、菜单完整
  • [ ] upload 目录文件可访问(域名配置一致)
  • [ ] 定时任务正常调度

恢复目标(RTO/RPO) ​

指标含义由什么决定
RPO最多丢多少数据备份频率 + binlog 保留
RTO多快恢复服务备份介质速度 + 恢复演练熟练度

中小基线:RPO ≤ 24h(每日全量)、RTO ≤ 2h(演练过的标准恢复流程)。

注意 ​

  • 备份文件与生产网段隔离(防勒索软件连备份一起加密)
  • 密钥(.env/JWT)单独安全存放——只有库没有密钥无法恢复服务
  • 版本升级/大变更前强制临时全量

相关 ​

小蚂蚁云团队 · 提供技术支持