Hello Stephane,

I assume that your database has good non-corrupted metadata, so you just 
need to buy FBDataGuard and export all available records from tables 
with problems (using re-export of metadata), then merge good data from 
corrupted database and exported records into new healthy database.

Regards,
Alexey Kovyazin
IBSurgeon



> Hello,
>
> On our database (FB 2.5) of 150 GB we have 21 bad sectors of 512 bytes (all 
> in the same block). because of that the backup/restore not work (even with 
> the -ignore option). And gfix not help us too much because it's freeze and 
> crash the fb_inet_server (but it's was also the case before the bad sectors 
> problem, so it's a bug in gfix i guess).
>
> Now i need to know with table/records are involved in the 21 bad sectors and 
> how to delete them. I already locate one table involved (and successfully 
> drop it, it's was not a very important table), but their is also another 
> table involved that i need and can't drop it. so i locate exactly the record 
> ID in error (by doing select until error appear) and try to delete them but 
> without success because engine answer me :
> Statement failed, SQLSTATE = XX001
> database file appears corrupt ()
> -bad checksum
> -checksum error on database page 7456994
>
> what are now my option ?
>
> i thing of manually update the checksum (by 12345) on the database page 
> 7456994 (and the page type too), but i hope their is a more convenient way 
> than hex edit my database ?
>
> another problem from reading Ann articles :
> "Here's the full scoop on checksums. Once upon a
> time, in a cute little town called Groton, there was a database and
> to be extra safe, it computed a checksum of every page just before
> it wrote the page to disk,and wrote the checksum in the page header.
> Immediately after it read the page, it computed the checksum again,
> and if the stored checksum didn't match the computed checksum it
> produced an error. The error almost never occurred, and when it did occur, 
> the stored checksum was zero, and so was every other byte on the page. Then 
> the database moved to a lovely town in California called Santa Cruz, where it 
> had different friends who took care of it. Those friends were looking for 
> ways to make the database faster and their tests showed that the database was 
> spending a lot of time (5-10%) computing checksums. So, they said, OK, 12345 
> is different from zero, so we'll still catch the same errors, but we won't 
> waste time computing something that never fails."
>
> it's mean that engine report error only if the checksums is different from 
> 12345 (and i imagine the checksums is written only on the page header not on 
> every disk sector of 512 bytes). as my page header is 8kb and my bad sectors 
> is only 512 bytes, what happen if the page header is not on a bad sector (so 
> page will return good checksum) BUT the the page content contain bad sector ??
>
> thanks by advance
> stéphane
>
>

Reply via email to