Subject Re: error while restoring fb2 database
Author Adam
--- In firebird-support@yahoogroups.com, "mohamed.banaouas"
<mohamed.banaouas@...> wrote:
>
> > > ...
> > > gbak: restoring index RDB$FOREIGN42
> > > gbak: restoring index RDB$FOREIGN163
> > > gbak: restoring index RDB$FOREIGN164
> > > gbak: ERROR: invalid request BLR at offset 249
> > > gbak: ERROR: data operation not supported
> > > gbak: Exiting before completion due to errors
> > >
> > > The same error occurs even with no-data database (gbak -m).
> > > It seems like the error is caused by a particular metadata :
> > > if so, how can I determine exactly witch one ?
> >
> > Does the backup restore successfully to a FB2 server? If not, it may
> > be corrupt. If you can restore to FB2, I guess you must be using a
> > feature new to FB2 that FB1.5 does not understand (for example,
> > indices on expressions). In fact, considering the failure appears to
> > occur restoring an index, that is a likely problem.
> >
> > Can you restore it with the -i switch or does that fail too? To
> > downgrade the on disk structure (ODS), you need to make sure that all
> > of your DDL is compatible with the lower version of Firebird, then use
> > the lower version of gbak against the newer server to generate your
> > backup file.
> >
> > Adam
> >
> I added -i switch and this is the output:
> ...
> gbak: restoring privilege for user SYSDBA
> gbak: restoring privilege for user SYSDBA
> gbak: restoring privilege for user SYSDBA
> gbak: creating indexes
> gbak: ERROR: invalid request BLR at offset 249
> gbak: ERROR: data operation not supported
> gbak: Exiting before completion due to errors
>

OK, it makes sense that it fails but was worth a try.

> One way to locate the "incompatible" index is to review last metadata
> modification scripts. But it could be helpfull if gbak was able to say
> where exactly it's wrong.

I agree, but it doesn't.

I imagine the information must be available in the system tables
somewhere but I am not familiar enough with Firebird 2 to say exactly
where (start with RDB$INDICES). You are most likely looking for an
index on an expression, like an index on upper(LastName). If you can
isolate your create index statements, you will probably see it.
Possibly you may have an index that is too long in Firebird 1.5
(because the limit was increased a lot in Firebird 2), the old limit
was about 250 bytes (or less for multi-byte charsets).

> In addition, every thing works fine in fb2 to fb2 operations.

Then the backup is OK, it must be you using a feature that did not
exist in 1.5.

Adam



>
>