Subject Re: [ib-support] Database corrupted... Data pump?
Author Ann W. Harrison
At 09:58 AM 5/26/2001 -0300, Zed wrote:

>I think I have a corrupted database here... I dont know if I can call it
> database anymore (I starting to believe I lost it forever)... :o)

Did you make a copy before you tried fixing it? If so,
you get one gold star.

>---------
>I cant connect to it, I'm getting the error:
>
>I/O error for file "C:\TEMP\BASE2494.GDB"
>Error while trying to read from file
>The operation completed successfully

That's an ugly thing. It suggests that you may have lost
the end of your database. How big is the database?

>---------
>I tried to validate it and got the error:
>
>Error 335544343
>
>Invalid request BLR at offset 653
>function NVLNUM is not defined
>module name or entrypoint could not be found

Maybe gfix was having a bad day - that happens. Does your
database have a UDF called NVLNUM? Is the library set up
properly?

>---------
>I also tried gfix -validate -full and the error changed
>
>database file appears corrupt ()
>-bad checksum
>-checksum error on database page 32229

That's not a good message. Until sometime in V4, InterBase
actually computed the checksum before writing a page. It turned
out the 10% of the total CPU time was going into checksumming.
Now, the engine just writes 12345 where the checksum used to go.
So, you've got a page that isn't at all right.

>I read something about performing a backup/restore (garbage collect, ignore
>checksum)...
>gbak -b -g -i... Nothing!!!

How about gbak -b -g -i -v .... ?

What is the last thing it succeeds in doing?

>Is there anything I can do to read the data from it? I can do anything you
>guys tell me to do... :o)

Figure out which table is getting the error - gbak is as good a way
as any. Then try printing out keys from that table to determine where
the bad row is. Then (with luck) you can delete that row. Now do
the gbak again, still with -v -b -g -i.


Regards,

Ann
www.ibphoenix.com
We have answers.