| Termin | Definicja |
|---|---|
| dostępność bazy danych | Dostępność bazy danych to stan określający, czy dana baza jest aktualnie osiągalna i gotowa do obsługi zapytań. Co oznacza dostępność bazy danychDostępność bazy danych oznacza stan, w którym system przechowujący dane jest osiągalny dla uprawnionych aplikacji, użytkowników lub innych usług i może prawidłowo obsługiwać zapytania. Sama obecność procesu bazy danych w systemie operacyjnym nie wystarcza do uznania jej za dostępną. Proces może działać, a baza nadal może odrzucać połączenia, oczekiwać na odzyskiwanie po awarii, mieć zablokowane zasoby albo nie odpowiadać w wymaganym czasie. W praktyce dostępność ma kilka warstw. Obejmuje działanie serwera, poprawną pracę silnika bazy danych, możliwość zestawienia połączenia przez właściwy protokół, uwierzytelnienie użytkownika oraz wykonanie prostego zapytania. Jeżeli jedna z tych warstw nie działa, aplikacja może zgłaszać niedostępność, nawet gdy inne elementy infrastruktury pozostają sprawne. Z tego powodu komunikat „baza danych jest niedostępna” opisuje skutek, ale nie wskazuje jeszcze przyczyny. Różnica między dostępnością a poprawnością danychDostępność nie jest równoznaczna z poprawnością, kompletnością ani aktualnością danych. Baza może przyjmować połączenia i zwracać wyniki, lecz jednocześnie zawierać błędne rekordy, nieaktualne informacje lub dane zmienione w wyniku nieprawidłowej operacji. Z kolei baza może być chwilowo niedostępna podczas kontrolowanej konserwacji, mimo że dane pozostają zapisane i nieuszkodzone. Nie należy również utożsamiać dostępności z szybkością działania. System, który odpowiada po bardzo długim czasie, formalnie może jeszcze obsługiwać zapytania, ale z punktu widzenia aplikacji użytkowej może być praktycznie niedostępny. Dlatego monitoring często rozróżnia co najmniej trzy stany: brak połączenia, odpowiedź negatywną oraz odpowiedź przekraczającą ustalony limit czasu. Osobno mierzy się czas odpowiedzi, liczbę błędów i możliwość wykonania operacji odczytu lub zapisu. Jak sprawdza się osiągalność bazyPodstawowym testem jest próba nawiązania połączenia z właściwym adresem, portem i nazwą bazy, a następnie wykonanie prostego zapytania kontrolnego. Test sieciowy, taki jak sprawdzenie osiągalności hosta, nie potwierdza dostępności samej bazy, ponieważ serwer może odpowiadać w sieci, a silnik może odrzucać połączenia. Podobnie otwarty port nie oznacza jeszcze, że uwierzytelnienie przebiegnie poprawnie ani że baza przyjmie zapytanie. Wiarygodny test powinien uwzględniać pełną ścieżkę używaną przez aplikację. Sprawdza się rozpoznawanie nazwy hosta, trasę sieciową, reguły zapory, konfigurację klienta, poświadczenia, limity połączeń oraz stan procesu bazy. Następnie warto wykonać zapytanie, które nie zmienia danych, na przykład odczyt wartości kontrolnej albo sprawdzenie bieżącego czasu serwera. Jeżeli aplikacja korzysta z puli połączeń, należy także sprawdzić, czy pula nie zawiera wygasłych lub uszkodzonych połączeń. Przyczyny utraty dostępności i sposób analizyUtrata dostępności może wynikać z zatrzymania usługi, awarii systemu, braku miejsca na dysku, uszkodzenia plików, przeciążenia procesora lub pamięci, wyczerpania limitu połączeń oraz problemów z siecią. Czasem przyczyną jest blokada transakcyjna: baza działa, lecz nowe operacje czekają na zwolnienie zasobu. Innym przypadkiem jest procedura odtwarzania po awarii, podczas której silnik wykonuje operacje odzyskiwania i tymczasowo ogranicza dostęp do danych. Analizę rozpoczyna się od ustalenia czasu wystąpienia problemu i porównania go z logami aplikacji, systemu operacyjnego oraz silnika bazy danych. Należy rozdzielić błąd połączenia od błędu uwierzytelnienia, przekroczenia czasu oczekiwania, odmowy wykonania zapytania i błędu samego zapytania. Sprawdzenie obciążenia, wolnego miejsca, liczby aktywnych połączeń i długotrwałych blokad pomaga zawęzić przyczynę bez pochopnego restartowania usług. Po przywróceniu działania trzeba potwierdzić nie tylko możliwość połączenia, lecz także poprawną obsługę reprezentatywnych operacji aplikacji. |