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

1.5 KiB

SQLite 维护与恢复演练 Runbook

适用范围:独立二进制或 local 模式的 SQLite 数据库。生产维护只能在批准的维护窗口执行;高峰期及存在活跃写入时禁止 VACUUM。

维护前检查

  1. 确认近期备份可读取,并记录当前数据库、WAL 文件大小。
  2. 在发布窗口停止 AIOps 写入进程;VACUUM 期间必须保持停写。
  3. 使用绝对路径,禁止将 /、工作区或未核实的路径作为维护目标。
./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。