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

Usługa SQL Server Agent

Termin Definicja
Usługa SQL Server Agent

Usługa SQL Server Agent odpowiada za harmonogramowanie i uruchamianie zadań administracyjnych instancji.

Rola usługi SQL Server Agent w instancji SQL Server

SQL Server Agent to składnik Microsoft SQL Server odpowiedzialny za automatyczne wykonywanie zadań zgodnie z określonym harmonogramem albo w reakcji na zdarzenia. Usługa działa jako osobny proces systemu Windows i komunikuje się z konkretną instancją SQL Server. Dla instancji domyślnej usługa jest zwykle widoczna jako „SQL Server Agent (MSSQLSERVER)”, natomiast dla instancji nazwanej stosuje nazwę w rodzaju „SQL Server Agent (SQLINSTANCJA)”. Jej zatrzymanie nie zatrzymuje samego silnika bazy danych, ale uniemożliwia automatyczne uruchamianie zadań obsługiwanych przez agenta.

Informacje o zadaniach, harmonogramach, alertach, operatorach i historii wykonywania są przechowywane przede wszystkim w systemowej bazie msdb. Agent korzysta z tych danych, aby ustalić, jakie zadanie należy uruchomić, z jakimi parametrami oraz w jakiej kolejności. Usługa musi mieć dostęp do instancji i odpowiednie uprawnienia do wykonywania zdefiniowanych operacji. Problemy z bazą msdb, kontem usługi, połączeniem z instancją lub konfiguracją zabezpieczeń mogą więc powodować brak realizacji zaplanowanych prac mimo poprawnego działania samego SQL Server.

Budowa zadania: kroki, harmonogramy i warunki startu

W SQL Server Agent zadanie, czyli job, składa się z jednego lub większej liczby kroków. Krok może wykonywać instrukcje Transact-SQL, polecenie systemu operacyjnego, skrypt PowerShell albo operację właściwą dla zainstalowanego składnika, na przykład pakiet SQL Server Integration Services. Każdy krok ma własne ustawienia sukcesu i błędu, dlatego przepływ może przejść do następnego kroku, zakończyć zadanie, ponowić wykonanie albo wykonać wskazany krok alternatywny. Samo utworzenie zadania nie oznacza jeszcze, że będzie ono uruchamiane automatycznie.

Automatyczny start zapewnia harmonogram przypisany do zadania. Harmonogram może określać częstotliwość, dni tygodnia, godzinę rozpoczęcia, datę obowiązywania oraz przedział, w którym zadanie może być wykonywane. Zadanie może być także uruchamiane ręcznie, przez alert lub przez inne zdarzenie skonfigurowane w SQL Server Agent. Przykładowo alert może reagować na określony numer błędu SQL Server, poziom ważności komunikatu albo warunek związany z wydajnością. Przy analizie problemu trzeba rozdzielić trzy elementy: istnienie zadania, aktywność harmonogramu oraz faktyczne uruchomienie usługi agenta.

Uprawnienia, konta proxy i kontrola wykonania

Zakres czynności wykonywanych przez SQL Server Agent zależy od konta, pod którym działa usługa, oraz od uprawnień używanych przez poszczególne kroki. Kroki Transact-SQL są wykonywane w kontekście zabezpieczeń SQL Server, a kroki typu CmdExec lub PowerShell dotyczą także uprawnień systemu Windows. Z tego powodu zadanie może poprawnie uruchamiać zapytania w bazie, ale nie mieć prawa do odczytu katalogu, zapisu pliku, uruchomienia programu albo połączenia z zasobem sieciowym. Nadanie usłudze nadmiernych uprawnień systemowych zwiększa zakres skutków ewentualnego błędu w skrypcie.

Do kontrolowania kontekstu wykonywania zadań SQL Server Agent wykorzystuje między innymi poświadczenia i konta proxy. Proxy pozwala przypisać wybranym podsystemom, takim jak CmdExec, PowerShell lub SSIS, określone konto zabezpieczeń zamiast używania bezpośrednio konta usługi. Agent może również korzystać z operatorów, do których wysyła powiadomienia o powodzeniu, błędzie lub zakończeniu zadania. Konfiguracja powiadomień wymaga działającego Database Mail oraz poprawnie ustawionego profilu pocztowego; samo wskazanie operatora nie gwarantuje dostarczenia komunikatu.

Diagnostyka niewykonanych zadań i ograniczenia edycji

Podstawowym źródłem informacji diagnostycznych jest historia zadania dostępna w SQL Server Management Studio oraz w tabelach systemowej bazy msdb. W historii można sprawdzić czas rozpoczęcia, czas zakończenia, wynik, komunikat błędu i numer kroku, na którym wykonanie się zatrzymało. Warto również przeanalizować log SQL Server Agent, stan usługi w systemie Windows, ustawienia harmonogramu oraz dziennik zdarzeń systemowych. Jeżeli historia nie zawiera nowej próby uruchomienia, przyczyną może być zatrzymana usługa, wyłączony harmonogram, data poza zakresem działania albo brak aktywnego przypisania harmonogramu.

SQL Server Agent nie jest dostępny we wszystkich edycjach SQL Server. SQL Server Express nie zawiera usługi SQL Server Agent, dlatego automatyzacji zadań w tej edycji nie można diagnozować tak samo jak w edycjach obsługujących agenta. W przypadku obsługiwanej edycji należy dodatkowo sprawdzić, czy zadanie nie zostało wyłączone, czy jego właściciel jest prawidłowym kontem oraz czy krok nie odwołuje się do nieistniejącej bazy, ścieżki lub poświadczenia. Podczas serwisowania komputera z narzędziami administracyjnymi SQL Server można zweryfikować stan usług, połączenie z instancją i lokalne logi, zachowując istniejącą konfigurację zadań przed wprowadzeniem zmian.

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