什么可能导致大量数据丢失以及如何进一步调查它

时间:2014-12-03 18:19:51

标签: firebird firebird2.5

我们已经与Firebird合作了很长时间,最近我们刚刚从2.0升级到2.5而没有任何问题。 我们的产品部署在500多个客户中,并且非常稳定。

问题是我们的一个客户遇到了一个非常奇怪的问题,三个不同的数据库,每个数据库托管在不同的服务器中,出现了类似的问题:大量数据丢失。这发生在不同的日期,即使在从2.0升级到2.5之后也没有明显的关系。客户表示,没有电力短缺。

大多数表突然变空,gfix对这些情况不起作用,在尝试验证时甚至没有显示错误。数据库本身仍然可访问,它没有损坏,但表格是空的。此外,一些触发器丢失/停用。

IBSurgeon FirstAid Direct得到了这个:

03/12/2014 16:07:51 INFO: Actual PageCount: 17621 found in database 
03/12/2014 16:07:51 ERROR: Found 1103 undefined or unrecognized pages.
03/12/2014 16:08:51 INFO:  ------------------- Starting diagnose
03/12/2014 16:08:51 INFO: Running procedure: Header page check
03/12/2014 16:08:51 INFO: ODS Major = 11 (32779)
03/12/2014 16:08:51 INFO: ODS Minor = 2
03/12/2014 16:08:51 INFO: Next transaction = 19343161
03/12/2014 16:08:51 INFO: Oldest transaction = 19343157
03/12/2014 16:08:51 INFO: Oldest active = 19343158
03/12/2014 16:08:51 INFO: Oldest snapshot = 19343158
03/12/2014 16:08:51 INFO: PageSize is Ok = 16384
03/12/2014 16:08:51 INFO: Running procedure: Checking of RDB$Pages consistency
03/12/2014 16:08:52 INFO: Checking of RDB$Pages consistency: Ok
03/12/2014 16:09:14 INFO: Low-level check of all relations: Ok

我的第一个猜测是磁盘问题,但它很难证明,因为它已经发生在三个不同的服务器上。

我的问题是:可能导致此类问题的原因以及如何相应地进行验证?

非常欢迎任何帮助,我不是Firebird专家,所以我应该感谢每一个建议。

提前致谢。

1 个答案:

答案 0 :(得分:1)

看起来像是正常删除数据(直到没有破坏的外键),我会说 - 业务逻辑中的一些错误,比如没有WHERE的DELETE FROM。

要进行调查,请尝试使用FirstAID Extractor。在标签" Config"打开恢复记录 - 已删除和旧版本,并检查这些表是否有旧的和已删除的记录版本。

另外,请不要犹豫直接与我们联系:)

此致 Alexey Kovyazin

IBSurgeon