Subject Database corruption
Author innoy1k
Hi there,

Recently, we have repaired a corrupted database for a client. Here is
the scenario:

1) gbak was run from IBConsole, identified the corrupted table_A. It
was believed that the corruption was on the Blob field.
2) A program was written to repair the database by removing the
corrupted records.
3) ran gfix and gbak to the repaired database on a couple platforms:
Win2000 and WinServer2003SE. Also ran gbak from IBConsole, all runs
were successful.
4) sent the repaired database back to client's server
(WinServer2003SE), ran gbak from IBConsole, and got errors straight
away on table_A. The error is: Database file appears corrupt(); bad
checksum; checksum error on database page 54805; gds_$get_segment failed.
5) reinstalled FB1.5 and IBConsole, ran gbak on the repaired database,
but failed again.
6) installed FB1.5 and IBConsole on another platform (WinXP) of this
client's office, ran gbak on the repaired database, the run was
successful.
7) scanned the hard drive and its mirror disk on the server, it seen
ok, changed a couple controllers, and disable mirror disk, then ran
the repaired database, but failed again.

In short, the checksum corruption is happening instantly. My questions
are:

Do you think this is a hardware problem? Why no other corruption in
the same machine?
What is gds_$get_segment?
Is the Blob field conflicting with the segmentation allocation?
Is there anything else that I can do to fix this problem?

thanks & regards,
Duncan Chen