Sqlite 数据库浏览器崩溃 - 如何使用日志文件恢复数据库

发布于 2024-12-11 14:28:54 字数 167 浏览 2 评论 0原文

我使用“SQlite Database Browser”程序来处理我的 sqlite 数据库。程序崩溃了,我丢失了我的更改。但 db-journal 文件仍然存在。如何使用日志文件恢复数据库?当我使用 SQLite 数据库浏览器打开数据库时,旧数据库将打开。

我能做些什么?

谢谢 :-)

I worked on my sqlite Database with the program "SQlite Database Browser". The program crashed and I lost my changes. But the db-journal file is still there. How can I recover the database with the journal file? When I open the database with the SQLite Database Browser the old database opend.

What can I do?

Thanks :-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风吹短裙飘 2024-12-18 14:28:54

除非您启用了预写日志记录,否则您的更改可能会丢失。 SQLite 中默认的日志系统的工作方式与您期望的相反。

从文档中:

传统的回滚日志的工作原理是将原始未更改的数据库内容的副本写入单独的回滚日志文件,然后将更改直接写入数据库文件。如果发生崩溃或回滚,回滚日志中包含的原始内容将回放到数据库文件中,以将数据库文件恢复到其原始状态。

请参阅:

WAL:https://sqlite.org/wal.html

文件格式,包括日志:
https://sqlite.org/fileformat.html

Unless you enabled Write-Ahead logging, I'm afraid that your changes are probably lost. The default journalling system in SQLite works in the opposite way than you are expecting.

From the documentation:

The traditional rollback journal works by writing a copy of the original unchanged database content into a separate rollback journal file and then writing changes directly into the database file. In the event of a crash or ROLLBACK, the original content contained in the rollback journal is played back into the database file to revert the database file to its original state.

See:

WAL: https://sqlite.org/wal.html

File formats, including journals:
https://sqlite.org/fileformat.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文