恢复损坏的大型SQLite3数据库的任何提示?

恢复损坏的大型SQLite3数据库的任何提示?,sqlite,skype,corrupt,repair,Sqlite,Skype,Corrupt,Repair,我有一个SQLite 3数据库,它来自“经典”的Windows Skype,它存储了所有的对话历史和聊天日志、以前的电话会议/群聊等,所有这些都在这个名为“main.db”的数据库文件中。它是标准的SQLite 3,而我的特别大,因为我使用它作为我的主要通信程序,所以发生在我身上这样的事情并不是很理想。 与此同时,我使用的是Windows10版本,它能够从损坏的数据库中提取我的联系人和一些最近的聊天记录,所以现在可以使用了 它已经被损坏,无法读取。我不确定是什么原因造成的,但我会被随机注销,当我

我有一个SQLite 3数据库,它来自“经典”的Windows Skype,它存储了所有的对话历史和聊天日志、以前的电话会议/群聊等,所有这些都在这个名为“main.db”的数据库文件中。它是标准的SQLite 3,而我的特别大,因为我使用它作为我的主要通信程序,所以发生在我身上这样的事情并不是很理想。 与此同时,我使用的是Windows10版本,它能够从损坏的数据库中提取我的联系人和一些最近的聊天记录,所以现在可以使用了

它已经被损坏,无法读取。我不确定是什么原因造成的,但我会被随机注销,当我再次尝试登录时,我会收到一条“数据库错误,请重新启动”的消息,我本应该立即停止,但我一直在登录,最终当我再次登录时,无论它多次将我踢出,一切都变得一团糟,联系人,聊天记录,一切。 它有大约2年的聊天日志和其他我不想泄露的对话历史,而且我最近没有备份。Skype本身有一个内置的修复功能,看起来它以前也修复过数据库,但今天当它试图修复数据库时(后来我发现每次我用错误消息注销后登录时它都在运行),它就像我上面描述的那样“一团糟”

我联系了他们的支持人员,他们告诉我main.db SQLite3文件,所有东西都存储在那里,我的文件肯定已损坏,他们无法进一步帮助我。某些东西被存储在“云”中,但这只相当于30天的通话、聊天日志和其他一切。我再也找不到超过这个数字的东西了(在今年夏天开始之前)

它将最后一个未修复的损坏数据库文件保留为main.corrupt,因此我接受了它并尝试使用它, 下面是我在各种应用程序中读取时收到的消息,“数据库映像格式不正确”, 在尝试执行“sqlite3 main.db”PRAGMA完整性检查时 我收到了几条这样的信息, “Page#####:btreeInitPage()返回错误代码11”

有人知道我可以做些什么来恢复它吗?我也搜索过谷歌,运气不太好。网上有一些程序声称他们可以花100美元来修复它,但我不完全确定我是否愿意花那么多钱在一些可能不起作用的东西上

我也尝试过“$sqlite3 main.corrupt.dump”| sqlite3 main_repaired.db”,但也没有太大成功


我自己也在研究它,我不完全确定这些数据库的格式,尽管其他人似乎也在网上记录了它。甚至还有一个名为“Skyperious”的程序,它允许您加载数据库并读取它,但我只得到了通常的“数据库图像格式不正确”,我尝试使用它自己的修复功能,但运气不好,一般来说,我会继续尝试,没有保证完全恢复损坏的SQLite3数据库的方法-理想的方法是从备份副本恢复数据库。也就是说,尝试恢复数据的常用技术是使用
sqlite3
命令行工具中的“.dump”命令,并使用其输出创建新的sqlite3数据库。结果将因原腐败的性质和程度而有所不同