| Termin | Definicja |
|---|---|
| Połączenie zadania z harmonogramem | Połączenie zadania z harmonogramem określa, kiedy i jak często SQL Server Agent je uruchomi. Połączenie zadania z harmonogramem — czym jest w SQL Server AgentPołączenie zadania z harmonogramem w SQL Server Agent oznacza przypisanie określonej czynności do reguł czasowych, według których ma być ona wykonywana. Samo zadanie opisuje, co ma się wydarzyć, natomiast harmonogram wskazuje, w jakim momencie uruchomienie powinno nastąpić oraz czy czynność ma być powtarzana. Dzięki temu można rozdzielić logikę działania od sposobu wyznaczania czasu. Jedno zadanie może być uruchamiane ręcznie, przez alert albo według jednego lub kilku harmonogramów, zależnie od przyjętej konfiguracji. W praktyce zadanie może obejmować wykonanie instrukcji Transact-SQL, uruchomienie pakietu, polecenia systemowego lub innego kroku dostępnego w danym środowisku. Harmonogram nie zastępuje kroków zadania i nie zmienia ich treści. Pełni funkcję zegara, który przekazuje Agentowi informację, że nadszedł moment rozpoczęcia pracy. Takie rozdzielenie ułatwia późniejsze modyfikacje. Można zmienić częstotliwość działania bez edytowania poleceń albo zmienić kroki zadania bez przebudowy całej reguły czasowej. Podczas tworzenia powiązania należy zwrócić uwagę na właściciela zadania, jego włączenie, aktywność harmonogramu oraz warunki uruchomienia usługi SQL Server Agent. Samo zapisanie konfiguracji nie gwarantuje wykonania operacji, jeżeli Agent jest zatrzymany, zadanie zostało wyłączone albo harmonogram nie jest aktywny. Warto również odróżnić czas zaplanowanego rozpoczęcia od czasu rzeczywistego zakończenia. Dłuższe działanie jednego uruchomienia może wpływać na kolejne terminy i prowadzić do nakładania się operacji. Połączenie zadania z harmonogramem a rodzaje reguł czasowychHarmonogram może być jednorazowy albo cykliczny. Wariant jednorazowy sprawdza się przy czynności zaplanowanej na konkretny dzień i godzinę, na przykład przy jednorazowej reorganizacji danych lub kontroli po zmianie konfiguracji. Harmonogram cykliczny pozwala określić powtarzanie według dni, tygodni, miesięcy albo krótszych odstępów. Przy wyborze typu nie wystarczy wskazanie samej częstotliwości. Należy ustalić również datę rozpoczęcia, ewentualną datę zakończenia, porę uruchomienia oraz przedział, w którym zadanie może działać. Istotne jest rozróżnienie między uruchamianiem o określonej godzinie a uruchamianiem w odstępach czasowych. Czynność wykonywana codziennie o tej samej porze ma inny charakter niż czynność powtarzana co kilka minut w ramach wyznaczonego okna. W pierwszym przypadku ważna jest zgodność z konkretnym punktem dnia, a w drugim kontrola obciążenia, czasu trwania i możliwych opóźnień. Im krótszy odstęp, tym większe znaczenie ma sprawdzenie, czy poprzednie wykonanie zdąży się zakończyć. Na tle innych mechanizmów automatyzacji harmonogram SQL Server Agent jest rozwiązaniem nastawionym na obsługę zadań administracyjnych i operacyjnych związanych z bazą danych. W porównaniu z ręcznym uruchamianiem daje powtarzalność i łatwiejszą kontrolę historii. W porównaniu z prostym wyzwalaczem reagującym na pojedyncze zdarzenie opiera się przede wszystkim na czasie. Jeżeli działanie ma rozpocząć się po wystąpieniu konkretnego problemu, lepsze może być użycie alertu. Jeżeli ma następować o ustalonych porach, właściwsze będzie powiązanie zadania z harmonogramem. Przy kilku harmonogramach przypisanych do jednego zadania należy zapisać ich przeznaczenie i wzajemne zależności. Dwa aktywne harmonogramy mogą uruchomić to samo zadanie w krótkim odstępie, nawet jeśli taki efekt nie był zamierzony. Należy też uważać na różne ustawienia kalendarza, zmianę czasu lokalnego oraz różnicę między czasem systemowym a czasem używanym przez środowisko bazodanowe. W dokumentacji powinno się odnotować, z jakiej strefy czasowej korzysta konfiguracja i kto odpowiada za jej utrzymanie. Połączenie zadania z harmonogramem — typowe problemy i objawyJednym z częstych problemów jest brak wykonania zadania mimo widocznego harmonogramu. Przyczyną może być nieaktywne powiązanie, wyłączony harmonogram, wyłączone zadanie albo zatrzymana usługa SQL Server Agent. Zdarza się również, że określono datę rozpoczęcia przypadającą w przyszłości lub ustawiono datę zakończenia, która już minęła. W takim przypadku konfiguracja może wyglądać poprawnie na pierwszy rzut oka, ale nie będzie generować nowych uruchomień. Inny objaw stanowi uruchamianie o niewłaściwej godzinie. Należy wtedy sprawdzić ustawienia czasu systemowego, strefę czasową, reguły czasu letniego oraz sposób zapisu godziny w harmonogramie. Nie można zakładać, że czas widoczny na ekranie administratora zawsze odpowiada czasowi na komputerze, na którym działa Agent. Pomocne jest porównanie kilku zapisów w historii zadania z rzeczywistym czasem systemowym i z informacją o ostatnim zaplanowanym uruchomieniu. Problemy mogą wynikać także z nakładania się wykonań. Jeżeli zadanie trwa dłużej niż odstęp między uruchomieniami, kolejne wywołanie może zostać pominięte, opóźnione albo rozpocząć się w sposób niepożądany, zależnie od rodzaju kroków i ustawień. Warto zmierzyć typowy czas działania, przeanalizować komunikaty historii oraz sprawdzić, czy zadanie nie czeka na blokadę, połączenie lub zasób systemowy. Samo skrócenie odstępu nie rozwiązuje przyczyny i może zwiększyć liczbę nieudanych prób. Trudność może sprawiać również zmiana harmonogramu używanego przez kilka zadań. Modyfikacja wspólnego obiektu czasowego może wpłynąć na wszystkie przypisane elementy, dlatego przed zapisaniem zmian powinno się ustalić pełną listę powiązań. Bezpieczną praktyką jest stosowanie nazw opisujących częstotliwość i przeznaczenie, a także unikanie ogólnych nazw, które po pewnym czasie utrudniają rozpoznanie funkcji. Przy większej liczbie zadań przydatny jest spis zawierający nazwę zadania, nazwę harmonogramu, częstotliwość, właściciela i przewidywany czas działania. Połączenie zadania z harmonogramem — praktyczne wskazówki konfiguracjiPrzed utworzeniem harmonogramu należy najpierw opisać oczekiwany rezultat. Powinno być jasne, czy czynność ma wykonać się raz, czy cyklicznie, jakie dni są dozwolone, kiedy można rozpocząć działanie i w jakich godzinach nie powinno ono kolidować z innymi operacjami. Następnie warto sprawdzić, czy zadanie można bezpiecznie uruchomić ręcznie. Test ręczny pozwala oddzielić problem z krokami od problemu z planowaniem. Dobrym rozwiązaniem jest ustawienie pierwszego uruchomienia w kontrolowanym terminie, a następnie obserwacja historii. Należy zweryfikować nie tylko informację o sukcesie lub błędzie, lecz także czas rozpoczęcia, czas zakończenia, komunikat każdego kroku i ewentualne ostrzeżenia. Jeżeli zadanie wykonuje operację wpływającą na dane, przydatne jest wcześniejsze sprawdzenie warunków wstępnych, dostępnych zasobów i sposobu odtworzenia poprzedniego stanu. Przy projektowaniu częstotliwości należy zachować proporcję między potrzebą aktualności a kosztem wykonywania operacji. Zbyt rzadkie uruchamianie może opóźniać obsługę danych, natomiast zbyt częste może zwiększać obciążenie i liczbę konfliktów. Harmonogram powinien uwzględniać także dni wolne od pracy, okna konserwacyjne oraz okresy, w których inne zadania wykonują intensywne operacje. Warto opisać te założenia w komentarzu lub dokumentacji, aby późniejsza zmiana nie była podejmowana wyłącznie na podstawie nazwy. Po każdej zmianie powinno się wykonać kontrolę powiązania. Trzeba potwierdzić, że zadanie ma właściwy harmonogram, harmonogram jest włączony, a data i godzina są zgodne z wymaganiem. Następnie należy sprawdzić rzeczywisty wpis w historii. Taka weryfikacja ma znaczenie szczególnie po przeniesieniu konfiguracji, zmianie konta uruchamiającego albo odtworzeniu środowiska z kopii. Widoczny zapis ustawień nie zawsze oznacza, że wszystkie zależności zostały zachowane. Kiedy sprawdzić połączenie zadania z harmonogramem w serwisie komputerowymDo konsultacji warto zgłosić się wtedy, gdy zadanie nie uruchamia się mimo aktywnego harmonogramu, działa o innej porze, wykonuje się wielokrotnie albo zatrzymuje się bez czytelnego komunikatu. Pomocna będzie informacja o nazwie zadania, nazwie harmonogramu, oczekiwanej częstotliwości, ostatnim poprawnym wykonaniu i treści błędu. Nie powinno się usuwać historii ani zmieniać kilku ustawień naraz, ponieważ utrudnia to ustalenie źródła problemu. Warszawskie Pogotowie Komputerowe 24/7 może pomóc w uporządkowaniu ustawień komputera, sprawdzeniu działania systemu oraz przygotowaniu danych potrzebnych do dalszej diagnostyki. Przed przekazaniem urządzenia warto zabezpieczyć kopie ważnych plików i opisać objawy własnymi słowami. Szczególnie przydatne jest wskazanie, czy problem pojawił się po aktualizacji, zmianie hasła, zmianie czasu systemowego lub modyfikacji ustawień zadania. W przypadku konfiguracji związanej z bazą danych należy zachować ostrożność przy zmianach wykonywanych bez planu. Harmonogram może być tylko widoczną częścią większego procesu, a jego modyfikacja może zmienić kolejność operacji, częstotliwość zapisów lub moment wykonywania czynności porządkowych. Najbezpieczniej rozpocząć od zebrania historii, opisania oczekiwanego zachowania i porównania go z aktualnymi ustawieniami, a dopiero później wprowadzać pojedyncze, możliwe do zweryfikowania zmiany. |