31 lines
1.5 KiB
Markdown
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`。
|