作为标题,可能吗?由于FireFox中我丑陋的html界面,我偶然删除了另一条记录。坏事是这个记录删除是一个根文件夹,程序自动级联删除所有内容:(
答案 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 Explorer,SQLite Repair,Sqlite Database Recovery和SQLiteDoctor。
如果您是开发人员,可以使用litereplica再次避免再次遇到同样的问题。它为SQLite添加了单主复制。
但请记住启用时间点恢复,因为在将事务复制到副本时,还会复制DROP TABLE
或DELETE FROM
等意外命令。使用PITR,您将能够转到之前的时间点。
或定期使用Backup API。虽然它在每个备份上传输整个数据库。
请记住:如果您在事务处于活动状态时复制SQLite文件或使用常规备份方法 副本可以是corrupted。
答案 6 :(得分:-1)
没办法。如果没有可用的备份,您将无法恢复此功能。