在Sqlite3中取消删除意外删除的记录

时间:2009-01-18 10:37:40

标签: sqlite

作为标题,可能吗?由于FireFox中我丑陋的html界面,我偶然删除了另一条记录。坏事是这个记录删除是一个根文件夹,程序自动级联删除所有内容:(

7 个答案:

答案 0 :(得分:2)

就在今天我从SQLite数据库中删除了一些数据。谷歌搜索了很多时间,但最后我找到了一个很好的解决方案。

访问:http://az4n6.blogspot.com.es/2013/11/python-parser-to-recover-deleted-sqlite.html

如果你仔细阅读并做了每一步,我真的保证你会删除你的数据,好的,格式不好但很好......我有我的数据。

运气!

答案 1 :(得分:1)

不幸的是,我也不知道某种方式。但是,在SQLite数据库文件上执行VACUUM之前,通常不会从技术上删除已删除的数据。也许您仍然可以使用文件上的某种十六进制编辑器恢复一些数据。

答案 2 :(得分:1)

抱歉 - 不。备份是我所知道的唯一选择。

将来,请考虑永远不要发出DELETE查询,尤其是从用户可访问的表单(只允许数据库管理员执行此操作,如果有人) - 只需在表中包含一个字段,将记录标记为非活动状态,然后将其设置为在WHERE子句中查询。

答案 3 :(得分:1)

可以通过十六进制编辑器进入并查看数据。我能找到的唯一信息表明元数据已经消失,因此记录不会再回来,但数据本身可能仍然存在。它与数据的重要性有很大关系,我怀疑你挖掘一个十六进制编辑器并不重要。

答案 4 :(得分:1)

并不总是直接从文件中删除数据。如果它有很多并且你很绝望,你可以在文件上使用UNIX命令strings。这可能有助于您恢复各种人类可读数据,但这将是一个艰难而不准确的过程。

答案 5 :(得分:1)

看看undark。我已经用过了。如果没有覆盖记录,它可以从SQLite db文件中导出行(已删除或未删除)。最新版本here

SQLite-Deleted-Records-Parser不提供相同类型的输出,但可能很有用。

还有一些产品,例如SQLite Forensic ExplorerSQLite RepairSqlite Database RecoverySQLiteDoctor

如果您是开发人员,可以使用litereplica再次避免再次遇到同样的问题。它为SQLite添加了单主复制。

但请记住启用时间点恢复,因为在将事务复制到副本时,还会复制DROP TABLEDELETE FROM等意外命令。使用PITR,您将能够转到之前的时间点。

或定期使用Backup API。虽然它在每个备份上传输整个数据库。

请记住:如果您在事务处于活动状态时复制SQLite文件或使用常规备份方法 副本可以是corrupted

答案 6 :(得分:-1)

没办法。如果没有可用的备份,您将无法恢复此功能。