← 全部文章

技术与生活 / 一篇记录

SQLite 备份不只是复制一个文件

成功复制文件并不等于备份可恢复,数据库写入过程中尤其如此。

数据库写入可能同时涉及主文件和日志文件,简单复制某一部分不能保证拿到一致快照。使用数据库支持的备份接口,更容易控制复制时的数据状态。

从一个例子看起

查询示例以 SQLite 为例;notes 为测试表,包含 id、title、score、category、created_at 字段。

PRAGMA integrity_check;

在备份副本上执行检查,并实际打开查询样本数据。

排查时再往前走一步

对副本执行完整性检查,再读取几条已知记录。文件能打开并不证明业务数据完整,恢复验证还应覆盖关键表、记录数量与必要约束。

恢复测试还应确认备份文件属于哪个数据库和哪个时间点。把实例、版本和生成时间写入受限的备份记录,有助于避免事故时恢复了一份完整却属于错误环境的文件。

在线 SQLite 备份应使用受支持的备份接口,不能只随手复制主文件。

参考:SQL 文档。

搜索文章

输入关键词,找回一篇记录。