2016-04-23 107 views
1

我已经从格式化的硬盘恢复数据用于诉讼。数据是Skype日志,存储在SQLite3数据库中。不幸的是,磁盘被格式化并且在驱动器上安装了新的OS X副本。我扫描了驱动器并找到了我正在查找的文件,但似乎我后面的数据库已损坏。如何从损坏的SQLite3数据库恢复数据?

我尝试下面的命令,我发现通过这样搜索上:

$ sqlite3 mydata.db ".dump" | sqlite3 new.db 

不幸的是,反倾销这种方式排除了我要找的(信息)记录的表。由于我可以通过使用另一个帐户登录并为其生成一个新的main.db来从Skype获取数据库的格式,我是否有任何其他选项可用于提取损坏的数据库的内容?否则,有没有办法在文本文件中导出数据库的原始内容?我只关心抓取某些讯息,我可以搜索。

+0

1.从[raw DB文件](http://www.sqlite.org/fileformat2.html)中提取数据,手动; 2.花很多钱给其他人这样做。 –

+0

为什么当我在文本编辑器中打开.db文件时,有些文本是可见的,但它主要是问号?我可以搜索一些东西,但大部分消息似乎无法通过这种方式搜索。 – GoldenJoe

+0

存储在数据库文件中的数据格式在我链接到的文档中进行了解释。 –

回答

3

当数据库损坏时,“.dump”命令会提取所有可用信息,但会以ROLLBACK结尾,因为它遇到损坏。

相反,输出存储在一个文件中:

$ sqlite3 mydata.db ".dump" > mydata.dump 

然后,你可以直接在该文件中查看数据,也可以使用文本改变从“回滚”到“提交”最后一行编辑。之后,您可以使用以下方法将数据的有效部分加载到数据库中:

$ sqlite3 new.db < mydata.dump 
相关问题