在运行wal_checkpoint(FULL)后,我使用cp命令备份SQLite DB。DB是在WAL模式下使用的,所以在我的文件夹中还有像-shm和-wal这样的其他文件。当我运行wal_checkpoint(FULL)时,WAL文件中的更改被提交到数据库。我想知道在运行检查点后,-wal和-shm文件是否会被删除。如果没有,那么它们包含了什么?
我知道我的备份过程不好,因为我没有使用SQLite备份API。这是我的代码中的一个bug。
谁能建议运行checkpoint后-shm和-wal文件包含哪些内容?
提供的任何链接都会很有帮助。
谢谢
发布于 2012-10-18 14:00:03
在查阅了大量资料后,我相信以下情况是正确的:
-shm
文件包含-wal
文件的索引。-shm
文件可提高读取-wal
文件时的性能。-shm
文件,则下次访问数据库时会重新创建该文件。checkpoint
,则可以删除-wal
文件。<代码>H213<代码>G214要执行安全备份,请执行以下操作:
-shm
和-wal
文件。然后可以使用cp
、scp
等创建备份。发布于 2012-10-17 17:53:56
-shm
文件不包含任何永久数据。
当最后一个连接关闭时,数据库将自动设置检查点,然后删除-wal
文件。这意味着在检查点之后,如果不存在其他连接,则-wal
文件不包含任何重要数据。
如果可能,您应该在备份之前关闭连接。
https://stackoverflow.com/questions/12928294
复制相似问题