Skip to content

数据库与空间维护 ​

Lite 默认使用两类 SQLite 数据:主数据库保存账号、服务器、任务和设置;监控数据库保存指标、延迟和丢包记录。Lite 2.3.7 继续优化监控 SQLite 的缓存、连接与写入队列,以降低长期运行时的内存占用。

监控数据库也支持 MySQL、MariaDB 和 PostgreSQL,可在“系统设置 → 数据与存储 → 监控数据”填写连接串。连接示例、Docker 配置及已有历史的搬运方法见外部监控数据库。主数据库当前仅支持 SQLite,本页的 WAL 和回收空间说明适用于本地 SQLite 文件。

文件组成 ​

SQLite 运行时通常包含:

  • *.db:主数据库文件。
  • *-wal:已经提交但尚未检查点回主文件的页。
  • *-shm:WAL 协调共享内存文件。

页面中的“总占用”应包含数据库文件、WAL 和 SHM。只看 .db 文件会漏掉运行时占用。

为什么主库会变大 ​

WAL 检查点把数据页写回 .db 后,主文件变大、WAL 变小是正常现象,总占用才是应观察的指标。网页上 WAL 保持不变也不能证明没有写入主库。

SQLite 删除记录后会形成可复用空闲页,文件不会自动按删除量缩小。后续写入会优先复用这些页。

数据保留 ​

监控数据会按设置的保留时间自动整理。较早的数据可能以较低时间精度显示,但仍可用于查看长期趋势。缩短 Agent 上报或探测间隔、增加任务和节点、延长保留时间,都会增加磁盘占用。

从其他版本迁入数据时,请按更新与数据库迁移操作并等待迁移完成,不要手工修改数据库表。

WAL 维护 ​

WAL 截断失败不会删除尚未安全落盘的数据。系统会保留 WAL 并在后续条件合适时重试。页面显示的“预计下次截断”应随真实执行结果更新。

如果日志持续出现 context deadline exceeded,应同时检查:

  • CPU 和磁盘是否长期饱和。
  • 是否有大量 1 秒或 5 秒探测任务。
  • 是否正在执行迁移、回收空间或长周期查询。
  • 容器卷是否位于性能较差的网络盘。

回收空间 ​

“回收空间”会整理 SQLite 文件并尝试把空闲页归还给磁盘。它适合以下情况:

  • 刚完成大版本迁移或大量历史数据清理。
  • 已经确认业务低峰且磁盘有临时工作空间。
  • 需要立即释放空间,而不是等待后续数据复用空闲页。

不要把回收空间设为高频定时任务。数据库繁忙时等待或失败并不意味着数据损坏。

基于 MIT 许可证发布