我在多个基于Windows的服务器上运行几个不同的Firebird版本(2.0,2.1),这些服务器硬件差异很大。 他们之间唯一匹配的事情是,他们正在运行相同的数据库结构的家庭build成的应用程序。
最近我在多台服务器上看到了大规模的减速。 事实certificate,数据库被破坏了,所以每次破坏时,我都会修复,备份和恢复数据库,并且一段时间(1-2周)都没有问题,然后再次重复。 谢天谢地,我还没有看到任何数据丢失或损坏。 问题是,每一次这样的停机都会导致生产力的损失,而且由于一些数据库位于偏远地区,往往会对我造成很大的影响。
我一直在试图找出是什么原因造成的腐败,但我一直无法。 它运行在不同的硬件上的事实表明,它不应该是一个基于硬件的问题。
如果我们排除硬件问题,我不好意识到这是Firebird中的一个bug,因为我没有通过SQL做任何事情。 你有什么想法如何找出究竟是什么造成的腐败,希望解决这个问题?
根据第一个回复:我在firebird.log中遇到了几个不同的问题:
INET/inet_error: read errno = 10054 INET/inet_error: select in packet_receive errno = 10038 Relation has 12 orphan backversions (5 in use) in table LIMITAI (139) Index 1 is corrupt on page 61700 level 1. File: ..\..\..\src\jrd\validation.cpp, line: 1659 (repeats for multiple pages and index numbers) Page 50801 is an orphan (repeats for multiple pages)
检查firebird.log。 它可能包含有关错误的重要信息。
检查应用程序如何处理事务。 火鸟不喜欢长时间运行的交易。 他们的结果是减速,最终(取决于负载等)服务器崩溃。
对于性能问题,我推荐SináticaMonitor 。
心连心
检查您的服务器对以下列表:
遵循这些简单的规则,我们有服务器运行多年,没有任何推</s>。