11

我正在使用 SQLite 和在后台运行的 php 应用程序。我已经使用 (Ctrl-c) 阻止了该应用程序,我只是注意到我有 database.sqlite 和 database.sqlite-journal。

目前,如何在不损害数据库的情况下删除 -journal 文件?

谢谢!

PS SQLite 版本 3.7.9

编辑:

-rw-r--r--. 1 damiano damiano  51M  8 mar 18.15 test.sqlite2
-rw-r--r--. 1 damiano damiano 2,6K  8 mar 18.15 test.sqlite2-journal
[damiano@localhost backup]$ sqlite3 test.sqlite2
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> 
[damiano@localhost backup]$ ls -lh
-rw-r--r--. 1 damiano damiano  51M  8 mar 18.15 test.sqlite2
-rw-r--r--. 1 damiano damiano 2,6K  8 mar 18.15 test.sqlite2-journal
[damiano@localhost backup]$ 
4

2 回答 2

14

执行这个命令:

sqlite3 test.sqlite2 vacuum

它将使您的数据库尽可能小,并在-journal文件中应用可能的未完成事务或回滚(并在进程中将其删除)。您实际上可以执行任何其他执行某些操作的事务(但仅连接/断开连接是不够的),但真空似乎是最简单的方法。

于 2013-03-09T05:11:00.320 回答
1

只需打开数据库(使用您的程序或使用sqlite3命令行工具)。SQLite 然后将回滚中断事务的更改,然后删除日志。

于 2013-03-08T18:30:25.690 回答