Unsupported on-disk structure for file xxx.fdb; found 32779, support 10


This error shows up in two possible cases:

1. You are not accessing the Firebird database. InterBase databases have a similar structure, but IB database versions higher than 6.0 are not supported by Firebird server.

2. You are accessing a higher version database file with lower version of Firebird server. For example, you created a database with Firebird 2.0, and now you're trying to access it with Firebird 1.5 server (or embedded client).

In case this happens, and you still need to access the data with older version, you should do something like this:

- Install the old version of Firebird and create an empty database with it.

This empty database will have the lower ODS (see FAQ #117 to learn about ODS). This is needed in order to have a database file which can be used by both versions of Firebird. This empty database needs to have all the metadata (tables, procedures, etc.) as the full one. If you don't have access to the old database structure in some 'safe' place, you can extract it using isql tool (with -x option) or some graphic administration tool (Extract Metadata DLL option in FlameRobin). If you used some features available only in newer Firebird versions, you might need to edit the SQL script manually to make it work on older Firebird version.

- Install the new version of Firebird and copy the data from full to the empty database

This operation needs a new Firebird server since only it can read both database structures. To do the copying, you can use some data pump tool like IB Data Pump or FBCopy (FBCopy has a neat option to disable all triggers while data is being copied and can also copy generators). See FAQ #20 for more info.

- When copying is done you have the database with old ODS and all your data in it. You can now install the old version of Firebird once again, and keep working with it.

3. A version of Interbase maybe installed. You need to change the standard RemoteServicePort setting in firebird.conf from 3050 some other value. For example, 3051. Make sure you use that port in all connection strings, i.e. instead of LOCALHOST use LOCALHOST/3051, instead of 192.168.0.11 use 192.168.0.11/3051, etc.

Note: section 3 of this FAQ is contributed by AnToine van Maarle.




Do you find this FAQ incorrect or incomplete? Please e-mail us what needs to be changed. To ensure quality, each change is checked by our editors (and often tested on live Firebird databases), before it enters the main FAQ database. If you desire so, the changes will be credited to your name. To learn more, visit our add content page.

If you are a commercial tool maker and your tool features a great way to handle the issue written about in this FAQ, please check out our advertisement page.



All contents are copyright © 2007-2016 FirebirdFAQ.org unless otherwise stated in the text.


Links   Firebird   News   FlameRobin   Home Inventory powered by FB  
Add content   Advertise   About  

Categories
 Newbies
 SQL
 Installation and setup
 Backup and restore
 Performance
 Security
 Connectivity and API
 HOWTOs
 Errors and error codes
 Miscellaneous