我使用程序“SQlite Database Browser”在我的sqlite数据库上工作。程序崩溃了,我丢失了我的更改。但是db-journal文件仍然存在。如何使用日志文件恢复数据库?当我使用SQLite数据库浏览器打开数据库时,旧数据库将打开。
我该怎么办?
谢谢: - )
答案 0 :(得分:1)
除非您启用了预写日志记录,否则我担心您的更改可能已丢失。 SQLite中的默认日志记录系统的工作方式与您期望的相反。
来自文档:
传统的回滚日志的工作原理是将原始未更改的数据库内容的副本写入单独的回滚日志文件,然后将更改直接写入数据库文件。如果发生崩溃或ROLLBACK,则回滚日志中包含的原始内容将回放到数据库文件中,以将数据库文件还原为其原始状态。
请参阅:
WAL:https://sqlite.org/wal.html
文件格式,包括期刊: https://sqlite.org/fileformat.html