Errori comuni di InterBase/Firebird causati da corruzioni e le loro possibilità di recupero
Alexey Kovyazin, 31-03-2014
Di seguito è riportata la descrizione degli errori e dei problemi più comuni nei database InterBase/Firebird e le loro possibilità di recupero.
Per ottenere il prezzo e i tempi di recupero esatti, contattateci via email.
Per una stima approssimativa dei prezzi, consultate la descrizione del servizio “Firebird and InterBase Recovery”. Non esiste una garanzia al 100% che gli errori descritti corrispondano esattamente alle cause descritte.
Controllo di coerenza software interno di gds (impossibile trovare la pagina tip (165))
Descrizione dell’errore
Il database non può essere aperto utilizzando il motore Firebird o InterBase e viene visualizzato il seguente messaggio: Internal gds software consistency check (cannot find tip page (165))
Spegnimento anomalo o corruzione fisica del file di database. La pagina di inventario delle transazioni (TIP) è andata persa. L’area della corruzione può variare da alcune pagine all’intero database, pertanto è necessaria un’indagine aggiuntiva.
Motivo (perché è successo?) Le cause più probabili sono lo spegnimento anomalo del server (utilizzando il pulsante Reset), un approccio di backup errato o strumenti di backup errati. Su Windows XP, tale corruzione può essere causata dalla funzionalità “Ripristino configurazione di sistema” per i file “gdb”.
Processo di recupero
Innanzitutto, il database deve essere scansionato con FirstAID Diagnostician. Se FirstAID non segnala una corruzione grave, la corruzione può essere riparata con la versione completa di FirstAID.
In caso di corruzione grave, è necessario un recupero personalizzato.
Possibilità di riparare la corruzione
99%
Il file di database risulta corrotto. Tipo di pagina errato. La pagina NNN è di tipo errato (previsto X, trovato Y)
Descrizione dell’errore
Il messaggio di errore è apparso nell’output standard o in firebird.log o interbase.log:
Database file appears corrupt. Wrong page type. Page NNN is of wrong type (expected X, found Y)
A causa di una corruzione fisica o di un’altra ragione, la sequenza delle pagine del file di database è stata modificata, oppure sono comparsi valori errati sulle pagine dei puntatori o sulle pagine radice degli indici, ecc.
Motivo
Le cause più probabili sono lo spegnimento anomalo del server (utilizzando il pulsante Reset), una procedura di backup errata o strumenti/approcci di backup errati.
Processo di recupero
Innanzitutto, il database deve essere scansionato con FirstAID Diagnostician. Se FirstAID non segnala una corruzione grave, la corruzione può essere riparata con la versione completa di FirstAID.
In caso contrario, è necessario un processo di recupero personalizzato.
Possibilità di riparare la corruzione
95%.
Errore I/O sconosciuto del database per il file “*.gdb”. Errore durante il tentativo di lettura dal file
Descrizione dell’errore
Il database non può essere aperto e viene visualizzato il seguente messaggio di errore: Unknown database I/O error for file “*.gdb”. Error while trying to read from the file.
Motivo
A causa dello spegnimento anomalo del server, le pagine più recenti del database non sono state scritte su disco.
Processo di recupero
Processo di recupero personalizzato. Il database viene controllato con gfix e backup/ripristino.
Possibilità di recupero
95%
La decompressione ha superato il buffer
Descrizione dell’errore
Viene visualizzato il messaggio di errore: Internal gds software consistency check (decompression overran buffer (179))
Motivo
Si tratta di una corruzione grave del database: le tabelle di sistema potrebbero essere danneggiate. A volte questo errore si verifica dopo il trasferimento del database su un nuovo server/computer. È necessaria un’indagine.
Processo di recupero
Analisi della struttura del database, generazione di nuove pagine, sono necessarie diverse iterazioni.
Possibilità di recupero
95%
Lunghezza del record errata
Descrizione dell’errore
Viene visualizzato un messaggio di errore: Internal gds software consistency check. Wrong record length
Motivo
Molto spesso l’errore “Wrong record length” è causato da RAM difettosa. Raccomandiamo vivamente di controllare la memoria ( RAM) sul server.
Processo di recupero
Individuare ed eliminare i record errati utilizzando gli strumenti di basso livello di IBSurgeon. Sono necessarie diverse iterazioni.
Possibilità di recupero
97%
Il file di database risulta corrotto. Checksum errato
Descrizione dell’errore
Il file di database risulta corrotto. Checksum errato. Errore di checksum sulla pagina XX del database.
Motivo
RAM difettosa. Raccomandiamo vivamente di controllare la memoria ( RAM) sul server.
Processo di recupero
Processo di recupero personalizzato. Sono necessarie diverse iterazioni.
Possibilità di recupero
99%
Impossibile trovare la versione precedente del record
Descrizione dell’errore
Il database sembra funzionare, ma gbak non riesce a completare il backup.
Testo dell’errore:
Internal gds software consistency check (cannot find record back version (291))
gds_$receive failed. Exiting before completion due to errors. internal gds software consistency check (can’t continue after bug check).
Motivo
La causa più probabile è una gestione errata delle transazioni. È necessaria un’indagine sulle prestazioni delle transazioni.
Processo di recupero
Il database richiede un’analisi dettagliata e di solito la soluzione consiste nell’individuare ed eliminare gli oggetti problematici del database e poi ricrearli. A volte è necessario trasferire i dati in un nuovo database.
Possibilità di recupero
99%
Transazione successiva più vecchia della transazione attiva più vecchia
Visualizzazione dell’errore
Internal gds software consistency check (next transaction older than oldest active transaction (266))
Motivo
Questo errore raro si verifica in InterBase 4.x-5.x, è un bug.
Processo di recupero
Processo di recupero personalizzato
Possibilità di recupero
99%
Intestazione corrotta
Descrizione dell’errore
Il database non può essere aperto e Firebird/InterBase non lo considera un database valido.
Motivo
Corruzione fisica, crash del disco rigido.
Processo di recupero
Processo di recupero personalizzato
Possibilità di recupero
80%
La dimensione del file di database supera il limite di implementazione
Descrizione dell’errore
Si verifica sui server InterBase 4.x-5.x e sulle prime versioni beta di Firebird (0.9.x). Il database non può essere aperto, la dimensione del file di database è di 4Gb.
Motivo
Limite di implementazione di InterBase 4.x-5.x-6.0.x e delle prime versioni di Firebird 0.9.x.
Processo di recupero
Processo di recupero personalizzato.
Possibilità di recupero
Di solito possiamo salvare tutti i dati (cioè il 100%), ma a volte può essere inferiore al 70%.
Errore di conversione dalla stringa
Descrizione dell’errore
Testo dell’errore: Conversion error from string “XXX”.
Motivo
La diagnosi preliminare è impossibile, è necessaria un’indagine sul posto.
Processo di recupero
Processo di recupero personalizzato.
Possibilità di recupero
99%
INET/inet_error: read errno = 10054 o 10038 o 10093
Visualizzazione dell’errore
Voci multiple in firebird.log o interbase.log con errori 10054, 10038, 10093, ecc.
Motivo
Questi errori sono causati da problemi di rete - controllate i vostri hub, schede di rete, ecc. Non è un errore di Firebird/InterBase in sé, ma può avere un impatto su Firebird/InterBase.
Processo di recupero
Offriamo lo strumento FBScanner per risolvere il problema degli “errori 10054” (tra gli altri problemi). Vedere i dettagli qui.
Possibilità di recupero
Non applicabile.
Descrizione dell’indice partner non trovata (175))
Descrizione dell’errore
Testo del messaggio di errore: internal gds software consistency check (partner index description not found (175))
Indice mancante per una chiave primaria o esterna.
Motivo
Può essere causato da corruzione fisica o da bug interni del server.
Processo di recupero
Processo di recupero personalizzato.
Possibilità di recupero
100%
Altri errori
Descrizione dell’errore
Di seguito è riportato un elenco di errori rari di Firebird/InterBase che possono essere causati da diverse ragioni. Non esitate a inviarci la descrizione del vostro problema - possiamo aiutarvi.
Una UDF errata può causare i seguenti errori in interbase.log:
SCH_validate – not entered
SCH_validate – wrong thread
La corruzione dell’indice può causare il seguente messaggio in interbase.log:
Page 34672 is an orphan
E questo errore può verificarsi durante inserimenti/aggiornamenti/eliminazioni intensivi in una singola transazione:
internal gds software consistency check (Too many savepoints (287))
È difficile riconoscere la causa senza un’indagine sul database in caso dei seguenti errori:
internal gds software consistency check (error during savepoint backout (290))
internal gds Software consistency check (size of opt block exceeded (286))
internal gds software consistency check (invalid SEND request (167))
Motivo probabile
Cause diverse. Dobbiamo indagare sul database corrotto.
Processo di recupero
Processo di recupero personalizzato.
Possibilità di recupero
Varie