docs(ops): add backup and restore runbook
This commit is contained in:
83
docs/backup-and-restore-runbook.md
Normal file
83
docs/backup-and-restore-runbook.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# Fabric 备份与恢复 Runbook(v1)
|
||||
|
||||
## 1. 范围
|
||||
- MySQL Center:`fabric_center`
|
||||
- MySQL Guild:`fabric_guild`
|
||||
- 可选:持久卷级别备份(`mysql_center_data` / `mysql_guild_data`)
|
||||
|
||||
---
|
||||
|
||||
## 2. 备份策略(建议)
|
||||
- 频率:每天 1 次全量(低峰期)
|
||||
- 保留:最近 7~14 天
|
||||
- 方式:`mysqldump`(逻辑备份)+ 异地对象存储
|
||||
- 校验:每周至少一次恢复演练
|
||||
|
||||
---
|
||||
|
||||
## 3. 手动备份命令
|
||||
> 在 `Fabric/` 目录执行
|
||||
|
||||
### 3.1 备份 Center
|
||||
```bash
|
||||
docker exec fabric-mysql-center sh -lc \
|
||||
'mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" --single-transaction --quick --routines --events fabric_center' \
|
||||
> backup-center-$(date +%F-%H%M%S).sql
|
||||
```
|
||||
|
||||
### 3.2 备份 Guild
|
||||
```bash
|
||||
docker exec fabric-mysql-guild sh -lc \
|
||||
'mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" --single-transaction --quick --routines --events fabric_guild' \
|
||||
> backup-guild-$(date +%F-%H%M%S).sql
|
||||
```
|
||||
|
||||
### 3.3 压缩
|
||||
```bash
|
||||
gzip backup-center-*.sql
|
||||
gzip backup-guild-*.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 恢复流程
|
||||
|
||||
### 4.1 停写(建议)
|
||||
- 先停 `backend-center` / `backend-guild`,避免恢复时写入冲突。
|
||||
|
||||
### 4.2 恢复 Center
|
||||
```bash
|
||||
gunzip -c backup-center-YYYY-MM-DD-HHMMSS.sql.gz | \
|
||||
docker exec -i fabric-mysql-center sh -lc 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" fabric_center'
|
||||
```
|
||||
|
||||
### 4.3 恢复 Guild
|
||||
```bash
|
||||
gunzip -c backup-guild-YYYY-MM-DD-HHMMSS.sql.gz | \
|
||||
docker exec -i fabric-mysql-guild sh -lc 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" fabric_guild'
|
||||
```
|
||||
|
||||
### 4.4 恢复后检查
|
||||
- 启动后端服务
|
||||
- 调用:
|
||||
- `GET /api/healthz`
|
||||
- `GET /api/metrics`
|
||||
- 随机抽查:
|
||||
- 用户登录
|
||||
- 节点注册列表
|
||||
- 消息拉取/回补
|
||||
|
||||
---
|
||||
|
||||
## 5. 演练清单
|
||||
- [ ] 恢复耗时记录
|
||||
- [ ] 数据一致性抽样
|
||||
- [ ] 回滚预案验证
|
||||
- [ ] 文档更新(命令/版本/风险)
|
||||
|
||||
---
|
||||
|
||||
## 6. 风险与注意事项
|
||||
- 恢复前先确认目标库环境(避免误写生产)
|
||||
- 密钥与密码不要写入仓库,统一走环境变量
|
||||
- `DB_SYNC` 在生产保持 `false`,结构变更走 migration
|
||||
Reference in New Issue
Block a user