| Termin | Definicja |
|---|---|
| Kalendarz wykonania zadań | Kalendarz wykonania zadań to zestawienie zaplanowanych terminów uruchomienia zadań SQL Server Agent. Rola kalendarza w SQL Server AgentKalendarz wykonania zadań w SQL Server Agent określa, kiedy zaplanowane zadanie ma zostać uruchomione. Samo zadanie, nazywane jobem, jest zbiorem kroków wykonywanych przez usługę SQL Server Agent. Kroki mogą uruchamiać instrukcje Transact-SQL, procedury składowane, polecenia systemu operacyjnego, skrypty PowerShell albo inne typy działań dostępne w konfiguracji agenta. Harmonogram nie zawiera definicji całego zadania, lecz opisuje regułę czasową, która wskazuje momenty jego uruchomienia. W SQL Server Agent harmonogram może określać częstotliwość dzienną, tygodniową, miesięczną albo jednorazową. Możliwe jest również wskazanie godziny rozpoczęcia i zakończenia aktywności harmonogramu oraz ograniczenie jego obowiązywania do określonego zakresu dat. Dzięki temu można zaplanować na przykład wykonywanie kopii zapasowej codziennie o 02:00, kontrolę integralności bazy raz w tygodniu albo raport uruchamiany w wybrane dni miesiąca. Jeden harmonogram może być powiązany z zadaniem, a zadanie może korzystać z więcej niż jednego harmonogramu, jeśli wymagają tego reguły działania. Elementy harmonogramu i sposób obliczania terminówDefinicja harmonogramu SQL Server Agent obejmuje między innymi typ częstotliwości, interwał oraz porę rozpoczęcia. Dla harmonogramu dziennego interwał określa liczbę dni pomiędzy kolejnymi uruchomieniami. Dla harmonogramu tygodniowego można wskazać konkretne dni tygodnia, takie jak poniedziałek, środa i piątek, a także odstęp wyrażony w tygodniach. Harmonogram miesięczny może wskazywać konkretny dzień miesiąca albo wystąpienie określonego dnia tygodnia, na przykład pierwszy poniedziałek miesiąca. Oprócz częstotliwości kalendarz może określać częstotliwość dobową. Zadanie może być uruchamiane tylko raz o wskazanej godzinie albo wielokrotnie w przedziale czasowym, na przykład co 15 minut od 08:00 do 18:00. Istotne jest rozróżnienie czasu rozpoczęcia harmonogramu od czasu rozpoczęcia konkretnego przebiegu zadania. Harmonogram wyznacza termin, natomiast rzeczywiste wykonanie może rozpocząć się później, jeśli agent jest zajęty, zadanie czeka na zasób, poprzedni przebieg nadal trwa albo wystąpiła kolizja z innym uruchomieniem. W przypadku zadań cyklicznych trzeba też ustalić, czy kolejny przebieg może rozpocząć się przed zakończeniem poprzedniego. Konfiguracja i kontrola w bazie msdbInformacje o zadaniach i harmonogramach SQL Server Agent są przechowywane w bazie systemowej Harmonogram można utworzyć lub zmienić za pomocą SQL Server Management Studio albo procedur składowanych SQL Server Agent, między innymi Diagnostyka opóźnień i błędnych uruchomieńJeżeli zadanie nie uruchamia się zgodnie z kalendarzem, należy sprawdzić, czy usługa SQL Server Agent działa oraz czy harmonogram jest aktywny i prawidłowo przypisany do zadania. Następnie trzeba zweryfikować daty obowiązywania, dni tygodnia, godzinę rozpoczęcia i zakończenia oraz ustawienie częstotliwości dobowej. Błąd może wynikać także z niezgodności strefy czasowej lub czasu systemowego serwera, ponieważ SQL Server Agent oblicza terminy na podstawie środowiska, w którym działa. W praktyce należy potwierdzić aktualny czas serwera i porównać go z czasem zapisanym w konfiguracji oraz historii. Opóźnienie może być skutkiem trwającego poprzedniego przebiegu, blokady, niedostępności zasobu albo oczekiwania na zakończenie innego zadania. Warto sprawdzić aktywne sesje, komunikaty w dzienniku SQL Server Agent i status poszczególnych kroków. Gdy kilka zadań korzysta z tego samego harmonogramu, ich rozpoczęcie może następować w różnej kolejności, a każde zadanie może mieć własne warunki zakończenia. Diagnostyka powinna więc obejmować zarówno sam kalendarz, jak i powiązanie joba z harmonogramem, konfigurację kroków, uprawnienia właściciela zadania oraz wpisy w historii wykonania. Uporządkowany kalendarz ułatwia wykrycie pominiętych uruchomień, powtarzających się błędów i konfliktów czasowych. |