Subject | Re: [firebird-support] Re: Sick Database - Need Advice |
---|---|
Author | Thomas Steinmaurer |
Post date | 2013-03-29T20:08:35Z |
> --- In firebird-support@yahoogroups.com, Thomas Steinmaurer <ts@...> wrote:A warning: Direct system table updates can damage your database and
>>
>>> --- In firebird-support@yahoogroups.com, Thomas Steinmaurer <ts@> wrote:
>>>>
>>>>> --- In firebird-support@yahoogroups.com, Thomas Steinmaurer <ts@> wrote:
>>>>>>
>>>>>>> I am migrating FB 1.5 databases on a Linux box to FB 2.5 on a Windows server. All proceeded according to plan. However, I have one database that is complaining. I backed it up from the command prompt. I use IBExpert as my front end on the Windows machine, and use it to restore my databases.
>>>>>>>
>>>>>>> The sick database seems to function correctly, but will not restore from a backup. I can provide a log of the restore if someone would like to look at it.
>>>>>>
>>>>>> Any error message upon restore?
>>>>>>
>>>>>>
>>>>>> --
>>>>>> With regards,
>>>>>> Thomas Steinmaurer
>>>>>> http://www.upscene.com/
>>>>>>
>>>>> Plenty. I have the log
>>>>
>>>> Is it too long for posting it here?
>>>>
>>>> Usually the last part of the restore log including the error message
>>>> should be sufficient.
>>>>
>>>> --
>>>> With regards,
>>>> Thomas Steinmaurer
>>>> http://www.upscene.com/
>>>>
>>>
>>> Here is a chunk that has the errors in it
>>>
>>> gbak: restoring column UNITS_PK
>>> gbak: restoring column MULTIPLIER
>>> gbak: restoring column PIECES
>>> gbak: restoring column SUPPLIER_ORDER_NO
>>> gbak:committing metadata for table ORDERS
>>> gbak:error committing metadata for table ORDERS
>>> gbak: ERROR:unsuccessful metadata update
>>> gbak: ERROR: ORDERS
>>> gbak: ERROR: Implementation of text subtype 65280 not located.
>>
>> This seems to be an inconsistency in Firebird 1.5 system tables, which
>> strikes back when restoring under Firebird 2.
>>
>> Can you please run the following SQL on the 1.5 database?
>>
>> select
>> rdb$collation_id
>> , count(*)
>> from
>> rdb$relation_fields
>> group by
>> rdb$collation_id
>>
>>
>>
>> --
>> With regards,
>> Thomas Steinmaurer
>> http://www.upscene.com/
>>
>
> RDB$COLLATION_ID COUNT
> 322
> -1 1
> 0 63
should be avoided whenever you can, but for your above problem, you
could try the following UPDATE statement on a COPY of your Firebird 1.5
database. And please take a copy only, when nobody is connected to the
database:
update rdb$relation_fields set rdb$collation_id = 0 where
rdb$collation_id = -1;
commit;
Then, backup your 1.5 database with Firebird 1.5 and restore it with
Firebird 2.5.
--
With regards,
Thomas Steinmaurer
http://www.upscene.com/