Główna / Pomoc / Uszkodzenie bazy danych

Uszkodzenie bazy danych

Przyczyny uszkodzenia baz

Koniecznie należy zastanowić się nad przyczyną uszkodzenia bazy, a więc:

  • zapytać użytkowników, czy nie zamykali niepoprawnie programu lub komputera;
  • sprawdzić dysk twardy pod kątem błędów;
  • sprawdzić czy program antywirusowy jest dobrze skonfigurowany (zobacz szczegóły); nieprawidłowo skonfigurowany program antywirusowy jest częstym powodem uszkodzenia baz;
  • nie kopiować pliku bazy w trakcie pracy, plik bazy może być kopiowany tylko po zamknięciu wszystkich stanowisk i wyłączeniu usługi serwera Firebird.

Zobacz inne przyczyny uszkodzenia baz: ibsurgeon.com/articles/item70.

Sposoby naprawy bazy

  1. Odtworzenie bazy z kopii zapasowej – nikt inny w tym czasie nie może pracować:
    1. zrobić archiwum – Narzędzia > Konserwacja bazy > Twórz kopię zapasową
    2. uruchomić program na nowej, pustej bazie danych
    3. wybrać z menu głównego Narzędzia > Konserwacja bazy > Przywróć bazę z kopii 
  2. Naprawa tablic – nikt inny w tym czasie nie może pracować – na oknie logowania zaznaczyć opcję Naprawa tablic i zalogować się do programu.
  3. Narzędzia Firebirda
    1. zamknąć wszystkie programy korzystające z bazy danych 
    2. gfix.exe 
      • z opcją -validate – sprawdza uszkodzenia bazy 
      • z opcją -mend – oznacza uszkodzone rekordy jako niepoprawne (będą one pomijane podczas archiwizacji bazy) 
    3. gbak.exe 
      • z opcją -backup_database –  służy do wykonywania kopii zapasowych 
      • z opcją -create_database – służy do przywracania bazy z kopiiPrzykładowy skrypt .bat służący do naprawiania baz danych:

        cd C:\Program Files\Firebird\Firebird_2_1_5\bin

        @set baza=127.0.0.1:C:\baza_danych.FDB

        @set kopia=C:\kopia_zapasowa.gbk

        gfix %baza% -validate -full -user SYSDBA -password masterkey
        gfix %baza% -mend -full -ignore -user SYSDBA -password masterkey

        gbak %baza% %kopia% -backup_database -v -g -l -user SYSDBA -password masterkey
        gbak %kopia% %baza% -create_database -rep -v -p 4096 -k -user SYSDBA -password masterkey

        Komendy można wykonywać pojedynczo (dodając “rem” na początku niektórych linii, aby wyłączyć wiersze, które mają nie być wykonane), dzięki czemu będzie można kontrolować wyniki wykonywanych operacji. Można najpierw wykonać sprawdzenie bazy, a dopiero potem backup oraz restore.

  4. Pompa – narzędzia Huzar Software. Program Pompa przepisuje rekordy z jednej bazy (uszkodzony oryginał) do drugiej (nowo założony plik bazy). Program można pobrać tutaj: http://wildcat.huzar.pl/download/INSTALKI/INNE/POMPA/
  5. Można skorzystać z pomocy IBSurgeon. Poniżej znajduje się wersja diagnostyczna oprogramowania do naprawy poważniej uszkodzonych baz: http://ibsurgeon.com/products/firebird_interbase/IBFirstAID-FBFirstAID
  6. Odtworzenie bazy z archiwum – ostateczność!
    1. uruchomić program na pustej bazie danych
    2. wybrać z menu głównego Narzędzia > Konserwacja bazy > Przywróć bazę z kopii – należy wybrać najnowsze spośród posiadanych archiwów.
      WAŻNE: jeśli pomiędzy momentem zrobienia kopii zapasowej a jej odtworzeniem w uszkodzonej bazie były robione jakieś operacje (nowe zgłoszenia, wysyłka, odbieranie komunikatów), to należy je ręcznie przenieść do „nowej” bazy. 

 

 

Dział pomocy