Subject Re: [IB-Architect] InterBase DB reached 4GB limit
Author Ann Harrison
At 08:15 PM 10/9/2000 +0000, sean@... wrote:
>Now here is one that will make all of you cringe. We have a client
>that was using a database and scanning large images into it (300+
>DPI). The database grew very quickly and they were using only one
>backup tape (not rotating 3 like we suggest). The backup tape is no
>where to be found and the DB is corrupt, exact error:
>-wrong page type
>-page 2 is of wrong type
> (expected 10, found 8)
>In other words we reached the IB limit.
>We keep all of our databases with the same schema (I think that is
>good news). Is there any way to repair page 2 from one of our master
>databases (i.e. bit by bit copy)? Will that even work?
>I figure there is someone out there that really knows the ODS and can

Here's some information to start with:
/* Page types */

#define pag_undefined 0
#define pag_header 1 /* Database header page */
#define pag_pages 2 /* Page inventory page */
#define pag_transactions 3 /* Transaction inventory page */
#define pag_pointer 4 /* Pointer page */
#define pag_data 5 /* Data page */
#define pag_root 6 /* Index root page */
#define pag_index 7 /* Index (B-tree) page */
#define pag_blob 8 /* Blob data page */
#define pag_ids 9 /* Gen-ids */
#define pag_log 10 /* Write ahead log information */
#define pag_max 10 /* Max page type */

#define HEADER_PAGE 0
#define LOG_PAGE 2

Happily for you, the write ahead log was never turned on, so the contents
of page 2 don't matter, though apparently it is checking during initialization.
A bit by bit copy from a different database should work ... though there's
always the risk that pages 3 - n may also be damaged.

The information you want is in ods.h, which I will send you off-line.

Good luck,