Files
easygoadmin-wiki/EasyGoAdmin_Gin_NaiveVue/zh/deploy/backup.md
T
2026-10-25 17:24:27 +08:00

58 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 11.9 备份与恢复
:::tip 概述
备份三件套:**数据库**(核心)、**upload 目录**(业务资产)、**配置与 .env**(密钥)。Redis 不需备份(缓存可重建)。定期演练恢复比备份本身更重要。
:::
## 备份对象与策略
| 对象 | 方式 | 频率建议 |
|---|---|---|
| MySQL | mysqldump / 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)单独安全存放——只有库没有密钥无法恢复服务
- 版本升级/大变更前**强制临时全量**
## 相关
- [11.3 数据库初始化与迁移](/zh/deploy/db-migrate.html)
- [11.10 故障排查手册](/zh/deploy/troubleshooting.html)