| Termin | Definicja |
|---|---|
| Zależności usług SQL | Zależności usług SQL Server determinują, które komponenty muszą działać, zanim uruchomi się dana usługa. Jak rozumieć zależności usług SQL ServerZależność usługi SQL Server oznacza relację, w której uruchomienie jednego składnika wymaga wcześniejszego uruchomienia innego składnika systemu Windows albo komponentu SQL Server. W praktyce trzeba rozróżnić zależność zdefiniowaną w Menedżerze sterowania usługami systemu Windows od zależności funkcjonalnej. Pierwsza jest zapisana w konfiguracji usługi i powoduje, że system próbuje uruchomić wymagane usługi przed usługą nadrzędną. Druga wynika z działania konkretnej funkcji, nawet jeśli nie jest zapisana jako formalna zależność w zakładce właściwości usługi. Podstawową usługą jest SQL Server Database Engine. Dla instancji domyślnej jej nazwa systemowa to Usługi towarzyszące instancji i ich rzeczywista rolaSQL Server Browser jest usługą pomocniczą, która odpowiada za udostępnianie informacji o instancjach SQL Server działających na komputerze, w szczególności o portach używanych przez instancje nazwane. Jej zatrzymanie nie zatrzymuje działającej instancji Database Engine. Może jednak uniemożliwić klientowi automatyczne odnalezienie portu instancji nazwanej, gdy połączenie korzysta z nazwy serwera i instancji zamiast z jawnie wskazanego portu TCP. W takim przypadku połączenie może działać po podaniu adresu w formacie SQL Server Agent korzysta z Database Engine do wykonywania zadań związanych z bazami danych, historii zadań, operatorów i alertów. Dlatego sprawna usługa agenta nie jest równoznaczna ze sprawnym harmonogramem kopii zapasowych lub konserwacji baz. Jeśli Database Engine nie przyjmuje połączeń, zadanie agenta może zakończyć się błędem logowania, błędem połączenia albo niepowodzeniem przy wykonaniu polecenia. Podobnie usługa SQL Server Integration Services, Analysis Services lub Reporting Services jest odrębnym składnikiem i nie powinna być automatycznie traktowana jako obowiązkowa zależność każdej instancji Database Engine. W przypadku wyszukiwania pełnotekstowego występuje zależność funkcjonalna od usługi SQL Full-text Filter Daemon Launcher. Na Windows usługa ta ma nazwę zależną od instancji, na przykład Sprawdzanie zależności bez zgadywaniaNa komputerze z Windows zależności można obejrzeć w SQL Server Configuration Manager, w sekcji SQL Server Services, po otwarciu właściwości wybranej usługi. To narzędzie rozpoznaje usługi SQL Server i prawidłowo obsługuje część ustawień kont usług, dlatego jest właściwsze do konfiguracji SQL Server niż przypadkowa zmiana parametrów w konsoli Services. Warto sprawdzić zarówno kartę Dependencies, jak i status wszystkich usług powiązanych z funkcją, która faktycznie zgłasza błąd. Do odczytu stanu usług można użyć poleceń systemowych. Przykładowo Sam status „Running” nie potwierdza poprawnej pracy. Należy sprawdzić dziennik błędów SQL Server, Podgląd zdarzeń Windows oraz dzienniki SQL Server Agent. Błąd uruchomienia może wynikać z braku dostępu konta usługi do katalogu danych, dzienników lub plików systemowych, a nie z brakującej zależności. Przydatne jest także sprawdzenie, czy port TCP skonfigurowany dla instancji jest dostępny oraz czy klient używa właściwej nazwy instancji. Zatrzymywanie i uruchamianie usług bez sprawdzenia logów może tylko zaciemnić kolejność zdarzeń. Znaczenie zależności przy diagnostyce i naprawie środowiskaPodczas diagnostyki najpierw ustala się, która funkcja nie działa: uruchomienie Database Engine, połączenie lokalne, połączenie zdalne, zadanie SQL Server Agent czy wyszukiwanie pełnotekstowe. Następnie porównuje się tę funkcję z wymaganymi usługami. Dla problemu z uruchomieniem instancji sprawdza się formalne zależności Windows, konto usługi, parametry startowe oraz dostęp do plików. Dla problemu z instancją nazwaną sprawdza się dodatkowo SQL Server Browser albo jawny port TCP. Dla błędu pełnotekstowego weryfikuje się usługę FDHOST Launcher, katalogi komponentu oraz stan katalogu pełnotekstowego. Nie należy bez uzasadnienia ustawiać wszystkich usług SQL Server na automatyczny start. SQL Server Browser może być zbędny, gdy aplikacja korzysta z określonego portu, a SQL Server Agent nie jest potrzebny, jeśli środowisko nie używa zadań i alertów. Z drugiej strony wyłączenie usługi wymaganej przez konkretną funkcję może spowodować częściową awarię, której nie widać w prostym teście logowania do bazy. Prawidłowa naprawa polega na odtworzeniu wymaganej kolejności uruchamiania, poprawieniu konfiguracji usługi i potwierdzeniu działania funkcji testowym połączeniem lub kontrolowanym zadaniem. W środowisku serwerowym diagnostykę warto zakończyć sprawdzeniem startu po restarcie systemu, połączenia lokalnego i zdalnego, działania używanych harmonogramów oraz komunikatów w dziennikach. Zależność usługi jest wtedy oceniana na podstawie rzeczywistego przepływu pracy, a nie wyłącznie na podstawie nazwy wpisu w konsoli usług. Pozwala to odróżnić awarię samego Database Engine od problemu z Browserem, Agentem, pełnym tekstem, siecią lub uprawnieniami konta usługi. |