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