Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa

Darmowa diagnoza laptopa

Dojazd do klienta bezpłatnie

Dojazd do klienta bezpłatnie

Laptopy zastępcze bezpłatnie

Laptopy zastępcze bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

ALTER DATABASE SET ONLINE

Termin Definicja
ALTER DATABASE SET ONLINE

Polecenie ALTER DATABASE SET ONLINE przywraca dostępność bazy danych po wcześniejszym przełączeniu jej w tryb offline.

Rola ALTER DATABASE SET ONLINE w SQL Server

ALTER DATABASE SET ONLINE to instrukcja języka Transact-SQL używana w Microsoft SQL Server do zmiany stanu bazy danych z OFFLINE na ONLINE. W praktyce przywraca ona bazę do stanu, w którym SQL Server może ponownie udostępniać jej obiekty, takie jak tabele, widoki, procedury składowane i funkcje. Polecenie nie służy do tworzenia bazy, odtwarzania kopii zapasowej ani naprawiania uszkodzonych struktur danych. Zmienia przede wszystkim stan dostępności konkretnej bazy w instancji SQL Server.

Instrukcja jest wykonywana w kontekście instancji SQL Server, a nazwę bazy podaje się po słowie ALTER DATABASE, na przykład ALTER DATABASE [NazwaBazy] SET ONLINE;. Po pomyślnym wykonaniu SQL Server podejmuje próbę ponownego otwarcia bazy. Jeżeli przyczyna wcześniejszego odłączenia lub wyłączenia nadal występuje, sama zmiana stanu może zakończyć się błędem albo baza może pozostać niedostępna z innego powodu.

Co oznacza stan OFFLINE i powrót do ONLINE

Baza w stanie OFFLINE nie jest dostępna dla normalnych operacji użytkowników i aplikacji. Po przełączeniu jej do tego stanu SQL Server nie udostępnia danych w zwykłym trybie zapytań. Polecenie SET ONLINE odwraca tę zmianę, ale nie jest równoznaczne z uruchomieniem całej usługi SQL Server. Instancja musi działać, a silnik powinien mieć możliwość odczytania plików bazy danych oraz uzyskania dostępu do lokalizacji, w których znajdują się pliki danych i plik dziennika transakcji.

Stan OFFLINE należy odróżnić od innych stanów raportowanych przez SQL Server, takich jak RECOVERING, RECOVERY_PENDING, SUSPECT, EMERGENCY czy RESTORING. SET ONLINE jest przeznaczone do bazy przełączonej w tryb offline. Nie zastępuje procedur odzyskiwania po awarii, kończenia odtwarzania kopii zapasowej, rozwiązywania problemów z dostępem do plików ani naprawy niespójności. Próba użycia polecenia dla bazy znajdującej się w innym stanie może nie przynieść oczekiwanego rezultatu.

Przed wykonaniem instrukcji warto sprawdzić stan bazy w widoku katalogowym sys.databases, zwłaszcza kolumny state i state_desc. Pozwala to ustalić, czy rzeczywistym stanem jest OFFLINE, czy też SQL Server sygnalizuje inny problem. Po wykonaniu polecenia ponowne sprawdzenie tych wartości potwierdza, czy baza osiągnęła stan ONLINE. Należy również uwzględnić zależności aplikacyjne, ponieważ klient może nadal zgłaszać błąd, gdy używa nieaktualnego połączenia, niewłaściwej nazwy bazy albo konta bez wymaganych praw.

Składnia, blokady i kontrola wykonania operacji

Instrukcja może być wykonywana z klauzulą sterującą zachowaniem wobec istniejących połączeń, zgodnie ze składnią obsługiwaną przez daną wersję SQL Server. Opcje zakończenia obejmują między innymi oczekiwanie bez wymuszania zakończenia, natychmiastowe wycofanie aktywnych transakcji lub wycofanie po określonym czasie. Takie ustawienia mają znaczenie wtedy, gdy inne sesje utrzymują blokady albo korzystają z zasobów potrzebnych do zmiany stanu bazy. Wymuszone zakończenie połączeń może przerwać pracę aplikacji, dlatego powinno być stosowane tylko po sprawdzeniu wpływu na działające procesy.

Do wykonania ALTER DATABASE potrzebne są odpowiednie uprawnienia administracyjne związane z daną bazą lub instancją. Brak uprawnień może spowodować błąd autoryzacji, natomiast poprawne uprawnienia nie gwarantują powodzenia, jeżeli pliki bazy zostały usunięte, przeniesione, zablokowane przez system operacyjny albo znajdują się na niedostępnym woluminie. W takiej sytuacji komunikat SQL Server trzeba interpretować razem z informacjami o ścieżkach plików, stanie dysku, dziennikach systemowych i właściwościach instancji.

Po przywróceniu stanu ONLINE należy zweryfikować możliwość wykonania kontrolnego zapytania oraz sprawdzić, czy aplikacja może ustanowić połączenie. Sam wpis ONLINE w widoku sys.databases potwierdza stan administracyjny, ale nie dowodzi poprawności całego przepływu aplikacyjnego. Dodatkowej kontroli mogą wymagać uprawnienia użytkowników, mapowania loginów na użytkowników bazy, zadania SQL Server Agent oraz połączenia korzystające z puli połączeń.

Granice zastosowania podczas diagnostyki SQL Server

Jeżeli baza nie przechodzi do stanu ONLINE, pierwszym krokiem jest ustalenie dokładnego komunikatu błędu i aktualnego stanu bazy, a następnie sprawdzenie metadanych plików w sys.master_files. Istotne są między innymi typ pliku, ścieżka fizyczna, rozmiar oraz informacja, czy SQL Server może otworzyć wskazany plik. W przypadku problemów z miejscem na dysku trzeba potwierdzić dostępność wolnej przestrzeni na właściwym woluminie. W przypadku problemów z uprawnieniami systemu operacyjnego należy zweryfikować konto usługi SQL Server i prawa do katalogu zawierającego pliki.

Nie należy traktować tego polecenia jako uniwersalnej komendy naprawczej. Jeżeli baza ma stan SUSPECT, występuje błąd odczytu dziennika transakcji, brakuje pliku .mdf lub .ldf, trwa odtwarzanie albo wykryto niespójność stron danych, potrzebna jest procedura właściwa dla konkretnej przyczyny. Bezpieczna diagnostyka obejmuje analizę logu błędów SQL Server, historii operacji administracyjnych, ostatnich kopii zapasowych i zmian w konfiguracji. Działania naprawcze ingerujące w spójność danych powinny być wykonywane dopiero po zabezpieczeniu kopii i ustaleniu konsekwencji.

W środowisku roboczym przywrócenie dostępności bazy powinno być zakończone testem połączenia z używanym silnikiem aplikacji oraz sprawdzeniem podstawowych operacji odczytu. Jeżeli po zmianie stanu aplikacja nadal nie działa, przyczyna może znajdować się poza samym stanem bazy, na przykład w konfiguracji connection stringu, DNS, zaporze sieciowej, uwierzytelnianiu lub blokadach pozostawionych przez wcześniejsze sesje. Rozdzielenie tych warstw pozwala uniknąć błędnego założenia, że ponowne ustawienie ONLINE automatycznie usuwa każdy problem z dostępem do danych.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę