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

Harmonogramy zadań

Termin Definicja
Harmonogramy zadań

Harmonogramy zadań to zbiorcze określenie wszystkich zaplanowanych cykli wykonywania operacji przez SQL Server Agent.

Budowa harmonogramu zadań w SQL Server Agent

Harmonogramy zadań w SQL Server Agent określają, kiedy i z jaką częstotliwością ma zostać uruchomione zadanie zapisane w instancji SQL Server. Samo zadanie, czyli job, jest kontenerem obejmującym nazwę, opis, właściciela, kroki wykonawcze oraz przypisane harmonogramy. Harmonogram nie zawiera zwykle właściwej operacji biznesowej. Określa jedynie warunki czasowe, po których SQL Server Agent rozpocznie wykonywanie danego zadania.

Jedno zadanie może mieć kilka kroków oraz więcej niż jeden harmonogram. Krok może wykonywać instrukcję Transact-SQL, uruchamiać pakiet SQL Server Integration Services, wywoływać polecenie systemu operacyjnego albo korzystać z innego typu podsystemu obsługiwanego przez SQL Server Agent. Przejścia między krokami zależą od wyniku poprzedniego kroku: można wskazać kontynuowanie pracy, zakończenie zadania albo przejście do określonego numeru kroku po sukcesie lub błędzie.

Typy częstotliwości i zasady uruchamiania

Definicja harmonogramu obejmuje między innymi typ częstotliwości, interwał, porę rozpoczęcia oraz ewentualną datę zakończenia. SQL Server Agent obsługuje harmonogramy jednorazowe, dzienne, tygodniowe i miesięczne. Dla częstotliwości dziennej można ustalić powtarzanie w określonych odstępach godzin, minut lub sekund w ramach wyznaczonego przedziału czasu. Harmonogram tygodniowy może obejmować wybrane dni tygodnia, a harmonogram miesięczny może wskazywać konkretny dzień miesiąca albo regułę typu określony dzień tygodnia w danym tygodniu miesiąca.

Oprócz uruchamiania według zegara zadanie może być wyzwalane przez zdarzenie, na przykład zmianę stanu SQL Server Agent, pojawienie się określonego komunikatu, sygnał zewnętrzny albo zakończenie innego zadania. Dostępne wyzwalacze zależą od konfiguracji i wersji SQL Server. Istotne jest rozróżnienie między harmonogramem a wyzwalaczem: harmonogram opisuje przede wszystkim czas, natomiast wyzwalacz może reagować również na zdarzenie. Zadanie może być przypisane do harmonogramu współdzielonego albo do harmonogramu utworzonego wyłącznie dla tego zadania.

Kontrola wykonania, zależności i historii

SQL Server Agent zapisuje informacje o uruchomieniach zadań w bazie systemowej msdb. Historia pozwala sprawdzić, czy zadanie zostało uruchomione, jakie kroki wykonano, ile trwała praca oraz jaki był komunikat końcowy. W praktyce podczas analizy problemu trzeba odróżnić brak uruchomienia zadania od uruchomienia zakończonego błędem. Pierwszy przypadek może wynikać z nieaktywnego harmonogramu, daty poza zakresem obowiązywania, wyłączonego SQL Server Agent albo konfliktu z innym ograniczeniem. Drugi wymaga analizy konkretnego kroku, kodu zakończenia i komunikatu z historii.

Znaczenie ma także zachowanie przy nakładaniu się uruchomień. Jeżeli zadanie trwa dłużej niż odstęp między kolejnymi planowanymi startami, następne uruchomienie może zostać pominięte lub obsłużone zgodnie z zasadami działania SQL Server Agent i konfiguracją zadania. Warto sprawdzić czas rozpoczęcia, czas zakończenia oraz częstotliwość, ponieważ zbyt krótki interwał może powodować kolejkę pracy, wielokrotne równoległe operacje albo niepełne przetwarzanie danych. Dla zadań zależnych od siebie bezpieczniejszym mechanizmem bywa warunek oparty na zakończeniu poprzedniego zadania zamiast niezależnych godzin uruchomienia.

Konfigurację można tworzyć i analizować w SQL Server Management Studio albo za pomocą procedur systemowych SQL Server Agent, takich jak sp_add_job, sp_add_jobstep, sp_add_schedule i sp_attach_schedule. Przed zmianą warto ustalić, czy modyfikowany harmonogram jest używany przez jedno zadanie, czy przez wiele zadań. Zmiana harmonogramu współdzielonego może zmienić zachowanie kilku niezależnych procesów jednocześnie.

Diagnozowanie nieprawidłowych uruchomień

Analizę należy rozpocząć od sprawdzenia, czy usługa SQL Server Agent działa i czy samo zadanie oraz przypisany harmonogram są włączone. Następnie trzeba porównać bieżący czas serwera z ustawieniami harmonogramu, uwzględniając strefę czasową, czas letni i ustawioną datę rozpoczęcia. Warto również zweryfikować właściciela zadania, konto używane przez poszczególne kroki oraz uprawnienia do baz danych, plików i zasobów sieciowych. Zadanie może mieć poprawnie zdefiniowany czas uruchomienia, ale mimo to zakończyć się błędem, jeśli konto wykonawcze nie ma dostępu do wymaganego obiektu.

Przydatne jest porównanie definicji zadania z jego historią w msdb, a także sprawdzenie dziennika SQL Server Agent. Należy zwrócić uwagę na komunikaty o pominiętym uruchomieniu, nieprawidłowym właścicielu, błędzie kroku, niedostępnej bazie lub przekroczeniu czasu wykonania. Sam fakt obecności zadania na liście nie potwierdza jego działania. Poprawna diagnoza wymaga powiązania konfiguracji harmonogramu, stanu usługi, historii uruchomień, zależności między krokami oraz rzeczywistego rezultatu operacji wykonywanej przez zadanie.

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