Z powodów niezależnych od programu baza danych utrzymywana lokalnie (na jednym z komputerów użytkownika, a nie w chmurze) może uleć uszkodzeniu. 

Powody uszkodzenia bazy danych

Powodem uszkodzenia lub usunięcia bazy danych mogą być między innymi:

  • przyczyny fizyczne:
    • fizyczne uszkodzenie dysku, 
    • brak urządzenia podtrzymującego UPS lub jego nieprawidłowe działanie, 
    • awaria zasilania (zanik prądu lub zbyt wysokie napięcie),
    • niestabilność sieci lokalnej, zwłaszcza podczas przetwarzania obejmującego dużą ilość danych, które może zostać przerwane w trakcie transakcji,
  • działania użytkownika
    • przerwanie długotrwałego przetwarzania danych np. przygotowywania danych do inwentaryzacji,
    • aktualizacja struktury bazy (najczęściej zaraz po aktualizacji), gdy baza danych jest wykorzystywana na innych stanowiskach lub przez inne procesy (np. nasłuchy terminarza czy odczytów z urządzeń), 
    • wyłączenie serwera - komputera lub serwera bazy danych Firebird, gdy na serwerze lub innym komputerze używana jest baza danych, 
    • uszkodzenie kopii zapasowej poprzez zbyt szybkie wyjęcie nośnika w przypadku wykonywania danych z kopii np. Pen Drive'a. Z powodu buforowania danych system Windows jeszcze po zakończeniu wykonywania kopii zapasowej przekazuje pewne dane z bufora do urządzenia. Odłączenie w tym czasie nośnika powoduje, że kopia będzie niepełne i w przypadku jej odtworzenia odzyskana baza będzie uszkodzona,
  • problemy związane z ochroną zasobów informatycznych
    • atak hakerski, 
    • brak programu antywirusowego, brak aktualizacji takiego programu lub niewłaściwa konfiguracja jego reguł, 
    • brak miejsca na dysku twardym, na którym przechowywana jest baza danych, 
    • wyczerpanie pamięci operacyjnej na serwerze wykorzystywanej do przetwarzania bazy danych, 
  • błędy związane z oprogramowaniem lub jego konfiguracją
    • niewłaściwa konfiguracja systemu Windows lub wykorzystywanie go w niewłaściwy sposób, na przykład umieszczanie bazy danych lub kopii na dysku podlegającym synchronizacji w usłudze OneDrive,
    • błędy w systemie operacyjnym Windows,
    • błędy w serwerze producenta bazy danych lub praca na przestarzałych wersjach silnika bazy danych (w przypadku Firebirda wersja 2.5.0 i starsze), 
    • błędy w bibliotekach producentów bibliotek komunikacyjnych, 
    • błędy pojawiające się w aktualizacjach programu antywirusowego (wykrycie potencjalnnie niebezpiecznego kodu może spowodować usunięcie usunięcie programu lub jego wybranych elementów, w tym bazy danych),
    • uśpienie komputera serwera, gdy inne komputery mają aktywne połączenie do bazy danych na tym serwerze
  • działanie osób trzecich,
  • inne przyczyny.

Czasem uszkodzenie takie nie jest widoczne podczas pracy z programem. Praca z bazą danych może po pewnym czasie skutkować zawieszaniem programu lub całkowitym zablokowaniem jego pracy. W takim przypadku systematycznie tworzone kopie zapasowe zawierają uszkodzony plik bazy danych i nie zawsze jest możliwa jego naprawa.

 

Sprawdzenie, czy baza danych nie jest uszkodzona

Dlatego warto co jakiś czas, na przykład raz w miesiącu, sprawdzać, czy baza danych nie jest uszkodzona. 

W tym celu wchodzimy wykonujemy następuące kroki:

  1. Wyłączamy wszystkie inne instancje programu, ewentualne programy nasłuchujące (np. nasłuch terminów z terminarza internetowy czy wyników badań z aparatów - SQ-LAB)
  2. Uruchamiamy program z uprawnieniamy Administratora / Właściciela
  3. Przechodzimy na na zakładkę Administrator i uruchamiamy funkcję Zadania Administratora: 

admin work0

Pojawi się teraz okno Zadań Administratora:

check db

Klikamy tu na przycisk "Napraw bazę". Jeśli baza jest wykorzystywana, pojawi się komunikat:

db in iuse

W takim przypadku należy wyłączyć procesy, które wciąż korzystają z programu i ponownie kliknąć na przycisk "Napraw bazę".

Czas sprawdzania zależy od wielkości bazy danych i szybkości komputera - może trwać od kilku sekund do kilku minut. 

Jeśli baza nie ma żadnych uszkodzeń, pojawi się komunikat:

db no errors

Jeśli jednak w bazie istnieją uszkodzenia, pojawi się komunikat, pokazujący liczbę błędów w rekordach danych i w indeksach. W takim przypadku najlepiej skontaktować się z serwisem technicznym, który pomoże w naprawie pliku bazy danych.

Zalecenia dotyczące ochrony danych

Najczęściej uszkodzenia bazy danych są niewielkie i łatwo ją naprawić. Rzadko zdarzają się sytuacje, gdy baza danych jest na tyle mocno uszkodzona, że naprawa jej jest niemożliwa. W takim przypadku pozostaje wykorzystanie kopii zapasowej i ręczne odtworzenie brakującej części danych na podstawie tworzonych na bieżąco wydruków. Aby zapobiec takiej sytuacji, zalecamy zastosowanie następujących środków ochrony danych:

  • Podłączenie do serwera urządzenia UPS, podtrzymującego zasilanie na czas niezbędny do zakończenia bieżących czynności i wykonania kopii zapasowej lub bezpiecznego wyłączenia komputera.
  • Włączenie automatycznego wykonywania kopii zapasowych co minimum 2 godziny i ustawienie przechowywania przynajmniej 4 ostatnich kopii. Zaleca się wykonywanie kopii zapasowej bazy danych na tyle często, aby ewentualne przywrócenie bazy danych z ostatniej kopii powodowało jak najmniejsze zakłócenia w pracy. 
  • Wykonywanie codziennie kopii zapasowej na zewnętrznym nośniku, przechowywanym poza placówką, w której znajduje się serwer. Jeśli nośnik pozostaje w placówce, zalecamy odłączanie go od komputera po wykonaiu kopii. W przeciwnym razie ewentualny atak hakerski może spowodować zniszczenie wszystkich kopii przechowywanych na nośniku zewnętrznym. 
  • W przypadku instalacji wielostanowiskowych należy przechowywać bazę danych na serwerze z zastosowaniem mechanizmów Raid 5, Raid 6 lub wyżej (zalecane: Raid 1+0).
  • Jeśli po aktualizacji, przy uruchomieniu programu pojawi się komunikat informujący o tym, że na pozostałych stanowiskach program oraz procesy dodatkowe muszą być wyłączone, należy bezwzględnie zapewnić  spełnienie tego wymogu. 
  • Przy większej ilości danych i stanowisk zalecane jest rozważenie zakup i zastosowanie bazy MS SQL Server zamiast darmowej bazy Firebird.

Wszystkie opisane czynności dotyczą bazy przechowywanej lokalnie.