Files
aiops/docs/sqlite-maintenance-runbook.md
T
Logan.Li fd60361d93 chore: 统一本地服务器与远程仓库源码
- 合并 main 与 master 历史并以服务器结构为基线
- 保留迁移、数据保留、AWS 账单与部署安全能力
- 建立 SDD 规格和 CI 验证闭环
2026-08-05 20:03:25 +08:00

31 lines
1.5 KiB
Markdown

# SQLite 维护与恢复演练 Runbook
适用范围:独立二进制或 local 模式的 SQLite 数据库。生产维护只能在批准的维护窗口执行;高峰期及存在活跃写入时禁止 `VACUUM`。
## 维护前检查
1. 确认近期备份可读取,并记录当前数据库、WAL 文件大小。
2. 在发布窗口停止 AIOps 写入进程;`VACUUM` 期间必须保持停写。
3. 使用绝对路径,禁止将 `/`、工作区或未核实的路径作为维护目标。
```bash
./scripts/sqlite-maintenance.sh \
--maintenance-window \
--db /srv/aiops/sqlite3.db \
--backup-dir /srv/aiops/backups/sqlite \
--pid-file /srv/aiops/.aiops.pid
```
脚本会先执行 SQLite `.backup`,对备份运行 `PRAGMA integrity_check`,再执行 `wal_checkpoint(TRUNCATE)`、`VACUUM` 和最终完整性检查。备份校验失败时不会进入空间回收步骤。
## 恢复演练
1. 在隔离测试目录复制一份备份,绝不直接覆盖生产库。
2. 用同版本二进制指向副本启动,并验证 `/version`、管理员登录、服务器列表和近期 Agent 指标查询。
3. 对副本执行 `PRAGMA integrity_check`,并记录恢复耗时、RPO、RTO 与验证结果。
4. 仅当演练通过后,更新备份巡检记录;生产恢复须由值班负责人批准并保留原库只读副本。
## 线上当前风险
`sqlite3.db` 与 WAL 已达到多 GB 级别。请先完成备份恢复演练,再安排维护窗口;本次整改不会在在线服务上直接运行 `VACUUM`。