Ta strona została przetłumaczona maszynowo. Przeczytaj oryginał angielski. English

Biblioteka IBSurgeon

Wewnętrzna kontrola spójności oprogramowania gds - jak odzyskać bazy danych Firebird/InterBase

Oleg Matveev, 20-listopada-2014

Gdy instancja Firebird (lub InterBase) nie może wykonać pewnej operacji bez gwarancji, że spójność bazy danych nie zostanie naruszona, zgłasza błąd (bugcheck) i przerywa bieżącą operację.

Taki tekst błędu Firebird zaczyna się od obowiązkowego prefiksu “internal gds software consistency check (can’t continue after bugcheck)” (dla najnowszych wersji Firebird jest to “internal Firebird software consistency check”), a następnie pojawia się właściwy tekst błędu (np. “decompression overran buffer (179)”).

Często błędy “internal software consistency check” oznaczają, że baza danych Firebird jest uszkodzona (jednak nie jest to regułą) - tj. spójność wewnętrznego obrazu bazy danych jest naruszona i powinna zostać naprawiona, aby kontynuować normalną pracę.

Jeśli widzisz taki błąd w swoim firebird.log lub jako komunikat błędu w swojej aplikacji, uruchom to polecenie, aby upewnić się, że Twoja baza danych jest w porządku:

Code
gfix.exe -v -full -user SYSDBA -pass masterkey path_to_your_database

Jeśli walidacja gfix zwróci błędy, baza danych jest uszkodzona i wymaga odzyskania.

Najpierw spróbuj odzyskać dane za pomocą gfix:

Code
gfix.exe -mend -ig -user SYSDBA -pass masterkey path_to_your_database

a następnie wykonaj kopię zapasową bazy danych:

Code
gbak.exe -b -g -user SYSDBA -pass masterkey path_to_your_database path_to_backup

i przywróć:

Code
gbak.exe -c -v -user SYSDBA -pass masterkey path_to_backup path_to_new_database

Jeśli wystąpi problem podczas gfix/gbak, odzyskaj uszkodzoną bazę danych za pomocą narzędzia IBSurgeon FirstAID - większość błędów “internal Firebird consistency check” można naprawić za jego pomocą; FirstAID został specjalnie zaprojektowany do radzenia sobie z poważnymi uszkodzeniami baz danych.

Ponadto, jeśli masz uszkodzoną bazę danych Firebird lub InterBase, skontaktuj się z naszym wsparciem: [email protected] i podaj pełny tekst błędu (lub zrzut ekranu).