IBSurgeon FirstAID is the tool that can automatically diagnose and repair corrupted InterBase or Firebird databases - it can repair corruptions that neither gbak nor gfix can handle.
It uses its own layer for low-level database access without using the InterBase or Firebird engine, so it can perform real "surgical" operations and repair your database when all other standard mechanisms cannot.
Now you are in 5 minutes from the recovery of your corrupted Firebird or InterBase database:
Download FirstAID - it's free.
Open corrupted database with FirstAID Extractor and double click on the table name, then browse through table's data pages.
If you decide to recover data you see in FirstAID Extractor, purchase the license. What you see is what you will recover with FirstAID Extractor.
Make sure to read FirstAID (Firebird and InterBase) Recovery Guide before you start recovery actions!
What is database corruption and how FirstAID fixes it
Usually database corruption means that some links between internal structures of Firebird (or InterBase) database are broken. When database engine sees a broken reference to missed record or database page, it stops operations with message like this:
Internal gds software consistency check (here are details)
Or, for recent Firebird versions:
Internal Firebird software consistency check (here are details)
The first part of this error is common prefix for bugcheck (i.e., serious error), and in the parentheses there are details of the error.
Usually such error prevents normal work with database, and recovery procedure should be executed. If it was not possible to fix corrupted Firebird (or InterBase) database with standard means (gfix.exe and gbak.exe), it is time for IBSurgeon FirstAID.
IBSurgeon FirstAID is designed to work with the database directly, on very low-level Ц it allows bypassing erroneous places where engine crashes and either fix broken links or export all users data to the new database.
There are 2 modules in FirstAID: FirstAID Direct and FirstAID Extractor. FirstAID Direct fixes corruption in-place: it deletes or recreates missed links. This is very fast and efficient method: after fixing broken links database usually becomes readable, and it is possible to perform backup and restore. There are detailed instructions in FirstAID Recovery Guide how to use Direct module of FirstAID and perform final steps with gfix and gbak tools.
Unfortunately, FirstAID Direct cannot fix corruptions with massive metadata losses: in this case FirstAID Extractor is required. FirstAID Extractor uses only few system tables to decrypt users data and export all available data to the new database.
Important! You can download free version of FirstAID, open corrupted database in Extractor and preview all available data Ц and if you can see these data, they can be saved and exported to the new empty database.
FirstAID Extractor scans corrupted database, then shows list of tables, so user can browse them.
With IBSurgeon FirstAID it is possible to repair corrupted databases in more than 95% cases.
Important! If you cannot see data with FirstAID Extractor in your corrupted database, please contact our support: email@example.com. Please send diagnostic log and relevant details (full error text, screenshots, etc) to our support, and get recovery estimation for free.
You will receive an exact free answer on whether your database recoverable or not, is it recoverable by FirstAID directly, or some manual work needed. We will also try to estimate how much of your data can be recovered if there really is a serious problem that will not allow 100% recovery.
For serious problems we offer Firebird (and InterBase) database recovery service- see more details here.
There is a number of possible corruptions that IBSurgeon FirstAID has been designed to repair and correct. These are listed below:
- Internal gds software consistency check (cannot find tip page (165)) The required Transaction Inventory Page is corrupt and the database cannot be opened. It is expected in this instance that neither gbak nor gfix will be able to repair your database (except in the case of a Read Only database). IBFirstAID will repair the missing pages and recover the database. It should be fixed with FirstAID Direct.
- Internal gds software consistency check (decompression overran buffer (178)....) One or more records are damaged. Data should be exported from the corrupted database with FirstAID Extractor.
- Internal gds software consistency check (wrong record length (183)...) One or more records are damaged. Data should be exported from the corrupted database with FirstAID Extractor.
- Unknown database I/O error for file "*.gdb". Error while trying to read from the database file. This usually indicates that a number of database pages have probably been lost at the end of the database file (power failure?). In this instance the database cannot be opened. Gfix cannot repair this. IBFirstAID will recreate the missing system pages and deletes the wrong pointers.
- Database file appears corrupt. Wrong page type. Page NNN is of wrong type (expected X, found Y). This error can indicate a number of problems. But typically there are missing pages in the database, or the page that is being accessed is not the expected page type. For example, if the expected page type is 5, it can mean that some data may have been corrupted within a table. Such a corruption may prevent a successful backup or may make the table unavailable to the database. IBFirstAID fixes the wrong page pointers and repairs the database.
- Fragmented record NNN is corrupt in table TABLE(NNN) One or more fragmented records lost their fragments, so whole record cannot be assembled from fragments. In this case data should be exported from the corrupted database with FirstAID Extractor.
- Wrong record length. Cannot find backversion. IBFirstAID will check every record in database and will try and repair these record-level errors.
- internal gds software consistency check (pointer page vanished from mark_full (256), file: dpm.cpp line: 3240) Serious corruption, data export with FirstAID Extractor is recommended.
- Other database corruptions can be caused by lost pages, corrupted records, metadata problems, etc, etc.
For those who don't want to experience corruption again, we offer protection and maintenance tool Firebird DataGuard.