Zgłosił się do nas klient z uszkodzoną bazą danych programu Veritum. Błąd jaki zgłaszał serwer Firebird to: cannot find tip page 165
Niestety standardowe polecenia Firebird mogące naprawić bazę danych typu gfix nie pomogły, a baza danych się nie otwierała. Przystąpiliśmy więc do próby uzyskania dostępu do danych. Po zablokowaniu bazy danych błąd w dalszym ciągu występował, ale udało się uzyskać dostęp do surowych danych.
Od klienta otrzymaliśmy plik bazy danych archiwalny i niestety założyliśmy błędnie ze struktury będą takie same. Niestety nic bardziej mylnego. Kontrola bazy danych wykazała szereg braków, między innymi brak pól w tabelach. Klient niestety nie miał kopii odzwierciedlającej 1:1 strukturę.
Poszliśmy o krok dalej. Zalogowaliśmy się do bazy danych za pomocą użytkownika SYSDBA. Wyeksportowaliśmy metadane ze źródłowej bazy danych. W dalszej kolejności utworzyliśmy nową bazę Firebird i zaimportowaliśmy do niej metadane.
Po takim procesie naprawy bazy danych przystąpiliśmy do stworzenia kopii i porządkowania bazy danych za pomocą polecenia:
gbak -user sysdba -password ****** restored.gdb restored.gbk
Po wykonaniu całego procesu odtworzyliśmy plik bazy danych za pomocą polecenia:
gbak -r -user sysdba -password ********* restored.gbk restored.gdb
Po takim szeregu działań mogliśmy oddać klientowi działającą bazę danych.
Uszkodzenia bazy danych mogą prowadzić do utraty kluczowych informacji i przestojów w działaniu aplikacji. Jedną z najczęstszych przyczyn jest utrata zasilania. Nagła utrata zasilania serwera bazy danych może przerwać procesy zapisywania, co prowadzi do niekompletności lub uszkodzenia danych.
Innymi przyczynami uszkodzeń mogą być awarie sprzętowe, takie jak uszkodzenia dysków twardych, oraz błędy oprogramowania, które mogą wystąpić np. podczas nieprawidłowo przeprowadzonej aktualizacji. Aby zminimalizować ryzyko uszkodzeń, zaleca się regularne tworzenie kopii zapasowych i monitorowanie stanu serwera bazy danych, szczególnie w przypadku wersji Firebird 2.1, która mimo swojej stabilności wymaga odpowiedniego zarządzania.