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

Historia agentów

Termin Definicja
Historia agentów

Historia agentów to zapis przeszłej aktywności procesów replikacji SQL Server, ułatwiający diagnostykę problemów.

Zakres informacji zapisanych w historii agentów SQL Server

Historia agentów w SQL Server oznacza przede wszystkim zapis wykonania zadań obsługiwanych przez SQL Server Agent. W przypadku replikacji mogą to być zadania uruchamiające lub nadzorujące pracę agenta migawki, agenta dystrybucji albo agenta scalania, zależnie od zastosowanego typu replikacji. Sam wpis historii nie jest kopią danych replikowanych między bazami. Jest metadanymi opisującymi przebieg zadania: czas rozpoczęcia, czas trwania, wynik, numer kroku oraz komunikat diagnostyczny.

Informacje o historii zadań są przechowywane w bazie systemowej msdb. Najważniejszym widokiem systemowym jest msdb.dbo.sysjobhistory. Zawiera on między innymi identyfikator zadania job_id, identyfikator kroku step_id, status wykonania run_status, datę i godzinę rozpoczęcia, czas trwania oraz tekst komunikatu zapisany w kolumnie message. Wartość step_id = 0 oznacza podsumowanie całego zadania, a wartości większe od zera odnoszą się do poszczególnych kroków zdefiniowanych w zadaniu.

Odczytywanie wyniku i czasu wykonania zadania

Historia SQL Server Agent zapisuje datę i godzinę w postaci liczbowej, dlatego bezpośredni odczyt kolumn run_date, run_time i run_duration jest mniej czytelny niż połączenie ich z nazwą zadania i konwersja do formatu daty. Nazwę zadania można pobrać z widoku msdb.dbo.sysjobs, łącząc go z sysjobhistory po kolumnie job_id. Nazwę kroku można uzyskać z msdb.dbo.sysjobsteps, wykorzystując identyfikator zadania i numer kroku.

Kolumna run_status rozróżnia podstawowe wyniki wykonania. Wartość 0 oznacza niepowodzenie, 1 powodzenie, 2 ponowienie próby, 3 anulowanie, a 4 komunikat informacyjny. Przy analizie replikacji nie należy ograniczać się do samego statusu całego zadania. Zadanie może zakończyć się niepowodzeniem dopiero w późniejszym kroku, a wcześniejsze kroki mogą mieć status powodzenia. Istotne są również wartości run_duration, komunikat błędu, kolejność uruchomień oraz różnica między czasem rozpoczęcia kolejnych prób.

Do przeglądania historii można użyć procedury systemowej msdb.dbo.sp_help_jobhistory, która pozwala filtrować wyniki według identyfikatora lub nazwy zadania. W praktyce przydatne jest zestawienie historii z informacjami o aktywnych uruchomieniach z widoku msdb.dbo.sysjobactivity. sysjobhistory pokazuje wykonania już zapisane, natomiast sysjobactivity pomaga ocenić, czy zadanie nadal działa, zostało uruchomione, lecz nie zakończyło się jeszcze wpisem końcowym, albo nie wystartowało w oczekiwanym czasie.

Historia agentów a diagnoza problemów replikacji

W replikacji SQL Server historia zadań pomaga odtworzyć kolejność zdarzeń. Powtarzające się niepowodzenia agenta dystrybucji mogą wskazywać na problem z dostarczeniem poleceń z bazy dystrybucyjnej do subskrybenta. Błędy agenta migawki mogą pojawiać się podczas tworzenia plików migawki lub przygotowywania danych dla subskrypcji. W replikacji scalającej historia agenta może ujawnić problemy występujące przy synchronizacji zmian oraz podczas wykonywania kolejnych prób.

Sam komunikat z historii nie zawsze rozstrzyga przyczynę awarii. Należy porównać jego treść z godziną wystąpienia błędu, czasem trwania zadania i numerem kroku, a następnie sprawdzić stan odpowiednich baz, połączenie między instancjami SQL Server, uprawnienia konta używanego przez agenta oraz dostęp do lokalizacji plików. Warto także odróżnić błąd trwały od chwilowego: pojedyncza nieudana próba zakończona sukcesem po automatycznym ponowieniu ma inne znaczenie niż seria identycznych komunikatów przy każdym uruchomieniu.

Historia agentów nie zastępuje dzienników szczegółowych poszczególnych agentów replikacji ani danych monitoringu replikacji. Jeżeli komunikat w sysjobhistory jest skrócony, należy sprawdzić właściwy dziennik agenta oraz konfigurację zadania. Przydatne jest również porównanie opóźnienia replikacji z czasem wykonania zadania. Wydłużenie czasu trwania bez zmiany statusu może być wczesnym sygnałem narastającego opóźnienia, blokad, problemów z wydajnością lub oczekiwania na zasób wymagany przez proces replikacji.

Porządkowanie zapisów i bezpieczna interpretacja historii

Historia zadań jest utrzymywana w bazie msdb zgodnie z ustawieniami SQL Server Agent. Przy dużej liczbie uruchomień, częstych ponowieniach lub wielu zadaniach związanych z replikacją tabela historii może szybko rosnąć. SQL Server Agent udostępnia ustawienia ograniczające liczbę przechowywanych wpisów oraz procedury służące do usuwania starszej historii. Zbyt agresywne czyszczenie utrudnia analizę problemów okresowych, dlatego retencję należy dopasować do częstotliwości wykonywania zadań i potrzeb diagnostycznych.

Przed usunięciem danych warto zachować informacje potrzebne do porównań, w szczególności identyfikator zadania, datę wykonania, status, czas trwania, numer kroku i komunikat. Nie należy ręcznie modyfikować tabel systemowych msdb; analiza powinna korzystać z widoków i procedur udostępnianych przez SQL Server. Trzeba również pamiętać, że historia opisuje zdarzenia zarejestrowane przez SQL Server Agent, a brak wpisu nie dowodzi, że żadna czynność nie została podjęta. Zadanie mogło nie zostać uruchomione, historia mogła zostać usunięta albo szczegół znajdować się wyłącznie w innym dzienniku.

Przy diagnostyce laptopa lub komputera PC podłączonego do środowiska korzystającego z SQL Server pierwszym krokiem powinno być ustalenie, czy problem dotyczy samego systemu Windows, połączenia z instancją SQL Server, usługi SQL Server Agent, konfiguracji zadania czy procesu replikacji. Dopiero później historia agentów może zostać użyta do potwierdzenia czasu wystąpienia i powtarzalności błędu. Neutralna, techniczna interpretacja wpisów ogranicza ryzyko pomylenia awarii zadania z awarią całej instancji lub utratą danych.

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