1.8 KiB
1.8 KiB
11.9 备份与恢复
:::tip 概述 备份三件套:数据库(核心)、upload 目录(业务资产)、配置与 .env(密钥)。Redis 不需备份(缓存可重建)。定期演练恢复比备份本身更重要。 :::
备份对象与策略
| 对象 | 方式 | 频率建议 |
|---|---|---|
| MySQL | mysqldump / xtrabackup / 云快照 | 全量每日 + binlog 增量(按 RPO 定) |
| upload 目录 | rsync / 对象存储同步 | 每日增量 |
| config.yaml + .env | 纳入配置库(.env 用加密通道) | 变更时 |
| Redis | 不备份 | 丢失后自动重建缓存(注意黑名单语义变弱) |
mysqldump 示例
# 全量
mysqldump -uroot -p --single-transaction --routines \
easygoadmin.gin.elevue | gzip > backup_$(date +%F).sql.gz
--single-transaction 保证 InnoDB 一致性快照、不锁表。
恢复演练
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)单独安全存放——只有库没有密钥无法恢复服务
- 版本升级/大变更前强制临时全量