| Termin | Definicja |
|---|---|
| stan bazy danych | Stan bazy danych informuje, czy jest ona online, w trakcie odzyskiwania, czy oznaczona jako niedostępna z powodu błędu. Co opisuje stan bazy danychStan bazy danych to informacja o jej aktualnej dostępności i gotowości do obsługi operacji. W najprostszym ujęciu baza może działać online, czyli przyjmować połączenia i wykonywać zapytania, albo być niedostępna, gdy system zarządzania bazą danych odrzuca połączenia, nie uruchomił instancji lub celowo zablokował dostęp. Samo określenie „online” nie oznacza jeszcze, że każda tabela jest poprawna ani że aplikacja może wykonać każdą operację. O dostępności decydują również uprawnienia, stan plików danych, wolne miejsce na dysku, działanie sieci oraz możliwość odczytu dziennika transakcji. Stan może także wskazywać, że baza znajduje się w trakcie odzyskiwania. Odzyskiwanie, nazywane recovery, polega na odtworzeniu spójnego obrazu danych po niepoprawnym zamknięciu procesu, awarii systemu, restarcie urządzenia albo przywróceniu kopii zapasowej. System zarządzania bazą analizuje wtedy między innymi zapisane transakcje i wykonuje operacje potrzebne do zatwierdzenia kompletnych zmian oraz cofnięcia zmian niedokończonych. W tym czasie baza może odpowiadać tylko częściowo albo całkowicie odrzucać połączenia. Online, recovery i niedostępność nie oznaczają tego samegoStan online opisuje gotowość do pracy, ale warto odróżnić dostępność usługi od poprawności danych. Instancja może działać, podczas gdy jedna baza, tabela lub indeks jest uszkodzony. Aplikacja może również nie uzyskać dostępu z powodu błędnego hasła, braku uprawnienia, nieprawidłowego adresu serwera albo zajętego portu, mimo że sam silnik bazy danych jest uruchomiony. Dlatego komunikat o niedostępności powinien być zestawiony z logami silnika, dziennikiem systemowym i dokładnym komunikatem zwróconym przez klienta. Stan recovery nie jest automatycznie dowodem utraty danych. Po kontrolowanym odtworzeniu kopii zapasowej jest normalnym etapem przywracania usługi, natomiast po awarii może ujawnić problemy z dziennikiem transakcji, uszkodzonym nośnikiem lub brakiem miejsca na pliki tymczasowe. Jeżeli odzyskiwanie zatrzyma się, trzeba ustalić, czy proces nadal wykonuje operacje, czy pozostaje w błędzie. Wielokrotne przerywanie recovery przez wymuszony restart może utrudnić ocenę sytuacji i spowodować ponowne rozpoczęcie tego etapu. Jak odczytywać komunikat o niedostępnościRozpoznanie stanu zaczyna się od ustalenia, czego dotyczy zgłoszenie: procesu silnika, konkretnej bazy, połączenia sieciowego czy pojedynczej operacji. Należy zapisać dokładny czas wystąpienia problemu, nazwę instancji, nazwę bazy oraz pełny tekst błędu. Następnie porównuje się go z logiem systemu zarządzania bazą danych. Istotne są wpisy o nieudanym otwarciu pliku, błędach wejścia i wyjścia, braku wolnego miejsca, nieudanym odtworzeniu dziennika, przekroczeniu limitu połączeń oraz ręcznej zmianie trybu dostępności. Nie powinno się zmieniać stanu bazy poleceniem przeznaczonym dla innego silnika. PostgreSQL, MySQL, Microsoft SQL Server i Oracle mają różne nazwy stanów, narzędzia administracyjne oraz procedury odzyskiwania. Nawet podobne określenia, takie jak „offline”, „read-only”, „recovery” czy „suspect”, nie muszą mieć identycznego znaczenia. Bez ustalenia konkretnego produktu bezpieczniej ograniczyć się do obserwacji procesu, logów i zasobów systemowych. W szczególności nie należy usuwać plików dziennika ani plików danych tylko dlatego, że ich nazwa sugeruje tymczasowy charakter. Weryfikacja spójności po przywróceniu dostępuPo przejściu bazy do stanu online warto sprawdzić, czy aplikacja może wykonać podstawowe operacje odczytu i zapisu oraz czy nie występują nowe błędy w logach. Sam fakt nawiązania połączenia nie potwierdza pełnej spójności. Kontrola powinna obejmować dostęp do wymaganych tabel, poprawne działanie indeksów, możliwość zatwierdzenia transakcji oraz zgodność konfiguracji aplikacji z nazwą i adresem właściwej bazy. Jeżeli problem pojawił się po awarii sprzętowej, należy również ocenić stan dysku, systemu plików i pamięci masowej. W przypadku powtarzającego się recovery albo trwałej niedostępności potrzebna jest diagnostyka oparta na kopii logów i kopii zapasowej, bez nadpisywania oryginalnych plików. Kolejność działań zależy od użytego silnika, rodzaju awarii i dostępnych kopii. Po usunięciu przyczyny należy ponownie zweryfikować połączenie oraz zachowanie aplikacji, a także ustalić, czy nie doszło do utraty ostatnich niezatwierdzonych zmian. Takie podejście pozwala odróżnić chwilowy stan po restarcie od rzeczywistego uszkodzenia bazy danych. |