如何在不破坏数据库的情况下删除-journal文件?

时间:2013-03-08 17:18:15

标签: sql sqlite

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

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

谢谢!

P.S。 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]$ 

2 个答案:

答案 0 :(得分:10)

执行以下命令:

sqlite3 test.sqlite2 vacuum

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

答案 1 :(得分:1)

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