我的任务是找到我们在Beta环境中约5%的日志中找到的2条重复行的原因(此应用程序尚未生效)。它们如下:
SQLite错误(11):[cf538e2783]第55472行的数据库损坏
SQLite错误(11):[cf538e2783]第55514行的数据库损坏
就是这样。没有其他信息可用,它总是那两行。它们由System.Data.SQLiteLog.LogEventHandler
记录,日志系统为Trace
。
有趣的是,似乎数据库继续运行,我们的应用程序的使用仍在继续,没有任何明显的问题。
所以我的问题是:实际上是否存在问题,如果是的话,您如何识别?
在我对这个问题的研究中,我必须相信这里存在一个合理的问题。根据{{3}} SQLite中的腐败应该是相当罕见的。由于数据库缩减(8.1),可能会导致错误的损坏报告,但我认为这不是这种情况。我必须假设报告是正确的,数据库实际上已损坏。
但是,如果数据库实际上已损坏,数据库如何继续正常运行数小时?
许多网站都提供www.sqlite.org如何解决此问题(通过还原到备份或以其他方式重新创建数据库),但我需要找到导致此问题的原因。
我已经尝试为SQLite安装数据库浏览器并浏览数据库,但一切似乎都很好,并且似乎没有办法“浏览”到报告为损坏的行。 (必须有办法这样做,但是,如果不可能知道这些行号是什么,他们为什么会给出行号?)
在这种情况下,我可以调查是否存在可能成为罪魁祸首的行动或领域?如何识别错误消息中引用的行?