我的博客

SQLite 数据备份:三种方案与一次完整的恢复演练

用 SQLite 最大的好处是简单:整个数据库就是一个文件。最大的风险也是这个:文件损坏、误删、服务器故障,数据就没了。

很多人的备份方式是定时 cp 一下数据库文件。这是有问题的:如果复制时恰好有写入,得到的备份文件可能是损坏的;开启 WAL 模式后,还有一部分最新数据在 -wal 文件里,只复制主文件会丢数据。

这篇文章会介绍三种正确的备份方式,分别适合不同的场景:

方案 适合场景 数据丢失窗口
sqlite3 .backup 定时全量备份,最通用 取决于备份频率
VACUUM INTO 在应用代码里触发备份 取决于备份频率
Litestream 需要接近实时的备份 秒级

最后会完整演示一次从备份恢复的过程。没有演练过恢复的备份,不能算真正的备份。

剩余内容需付费阅读

¥4.90

购买后永久可读