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

Diagnostyka SQL Server Agent

Termin Definicja
Diagnostyka SQL Server Agent

Diagnostyka SQL Server Agent to proces weryfikacji przyczyn niepowodzeń wykonywania zaplanowanych zadań przez tę usługę.

Zakres diagnostyki SQL Server Agent

SQL Server Agent jest usługą systemu Microsoft SQL Server odpowiedzialną za wykonywanie zadań automatycznych, czyli obiektów typu job. Zadanie może zawierać jeden lub wiele kroków, a każdy krok ma określony typ podsystemu, na przykład Transact-SQL, PowerShell, CmdExec, SSIS albo replikację. Uruchomienie następuje według harmonogramu, na żądanie, w reakcji na alert lub w wyniku zakończenia innego zadania. Diagnostyka SQL Server Agent polega na ustaleniu, czy problem wynika z samej usługi, konfiguracji zadania, harmonogramu, uprawnień, połączenia z instancją, błędu wykonywanego polecenia albo zależności zewnętrznej.

Podstawowym obszarem analizy jest baza systemowa msdb, w której przechowywane są między innymi definicje zadań, kroków, harmonogramów, właścicieli oraz historia wykonań. Przydatne są widoki katalogowe msdb.dbo.sysjobs, msdb.dbo.sysjobsteps, msdb.dbo.sysschedules, msdb.dbo.sysjobschedules, msdb.dbo.sysjobhistory i msdb.dbo.sysjobactivity. Sama obecność zadania w sysjobs nie oznacza, że może ono zostać wykonane: zadanie musi być włączone, mieć aktywny harmonogram, poprawnie skonfigurowane kroki i dostęp do wymaganych zasobów.

Ustalenie miejsca i czasu niepowodzenia

Analizę rozpoczyna się od porównania oczekiwanego uruchomienia z rzeczywistym przebiegiem zadania. W historii sysjobhistory warto sprawdzić kolumny run_date, run_time, run_duration, run_status, message, step_id i run_attempts. Wartość run_status równa 0 oznacza niepowodzenie, 1 powodzenie, 2 ponowienie próby, 3 anulowanie, a 4 oznacza trwające wykonanie. Rekord z step_id równym 0 opisuje wynik całego zadania, natomiast rekordy z innym identyfikatorem odnoszą się do poszczególnych kroków.

Jeżeli zadanie nie ma żadnego nowego wpisu w historii, przyczyny należy szukać przed rozpoczęciem kroku: w wyłączonym zadaniu, nieaktywnym lub wygasłym harmonogramie, niezgodności daty i godziny, zatrzymanej usłudze SQL Server Agent albo błędzie komunikacji z instancją. Widok sysjobactivity pozwala sprawdzić bieżące i ostatnie uruchomienia, między innymi czas rozpoczęcia, zakończenia oraz identyfikator sesji agenta. Trzeba również uwzględnić strefę czasową i czas systemowy hosta, ponieważ harmonogram SQL Server Agent jest interpretowany w kontekście czasu ustawionego dla serwera.

Logi, uprawnienia i zależności wykonania

Komunikat z historii zadania powinien być zestawiony z logiem SQL Server Agent, zwykle zapisywanym jako SQLAGENT.OUT, oraz z dziennikiem błędów SQL Server i Podglądem zdarzeń systemu Windows. Historia może zawierać jedynie skrócony komunikat, podczas gdy log agenta pokazuje moment inicjalizacji usługi, problemy z odczytem konfiguracji, błędy połączenia, nieudane próby uruchomienia podsystemu oraz informacje o ponawianiu zadań. Przy zadaniach uruchamiających polecenia systemowe lub skrypty należy dodatkowo sprawdzić pełną ścieżkę programu, katalog roboczy, zmienne środowiskowe, kod zakończenia procesu i dostępność zasobów sieciowych.

Istotnym elementem jest kontekst bezpieczeństwa. Krok Transact-SQL może działać w kontekście właściciela zadania lub konta używanego do połączenia z instancją, natomiast kroki wymagające dostępu do systemu operacyjnego mogą korzystać z poświadczeń przypisanych do serwera proxy SQL Server Agent. Konto usługi, właściciel zadania, poświadczenie i proxy to odrębne elementy konfiguracji. Błąd logowania, brak uprawnienia do bazy, brak dostępu do udziału sieciowego albo odmowa uruchomienia podsystemu nie powinny być traktowane jako jeden ogólny „błąd agenta”. Należy wskazać konkretny krok, konto wykonujące operację i zasób, do którego dostęp został odrzucony.

Weryfikacja konfiguracji i bezpieczne usunięcie przyczyny

Po zebraniu danych należy odtworzyć ścieżkę wykonania: harmonogram uruchamia zadanie, zadanie wybiera krok początkowy, krok nawiązuje połączenie lub uruchamia proces, a następnie jego wynik decyduje o przejściu do kolejnego kroku albo zakończeniu zadania. W konfiguracji trzeba sprawdzić akcje po sukcesie i po błędzie, liczbę prób ponowienia, opóźnienie między próbami, warunki zakończenia oraz ewentualne zależności od innych zadań. Należy także zweryfikować, czy procedura lub zapytanie używane przez krok istnieje w wybranej bazie i czy nie zmieniły się jej nazwa, schemat, parametry albo wymagane uprawnienia.

Naprawa powinna wynikać z potwierdzonej przyczyny, a nie z samego wyczyszczenia historii lub ręcznego uruchomienia zadania. Po zmianie konfiguracji wykonuje się kontrolne uruchomienie, sprawdza wynik każdego kroku, zapis w historii oraz komunikaty w logu SQL Server Agent. Jeżeli problem dotyczy środowiska serwerowego, zakres diagnostyki obejmuje usługę SQL Server Agent, bazę msdb, konfigurację instancji i zależności systemowe. W przypadku komputera używanego lokalnie można natomiast ograniczyć analizę do narzędzi administracyjnych SQL Server, połączenia z właściwą instancją oraz poprawności poleceń wykonywanych przez zadanie.

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