MECHANIZM AUTOMATYCZNY (SERVER AGENT) – JOB
br>
Jest to tak zwane „zadanie agenta”, czyli prostymi słowami mówiąc zadanie automatyczne, które wykonuje się wg określonego harmonogramu.
W tym temacie pokażę Ci w jaki sposób utworzyć JOB’a krok po kroku w SQL Server Management Studio.
Oczywiście całą procedurę tworzenia nowego JOB’a można zaimplementować w kodzie SQL, natomiast ja zademonstruję Ci „wyklikując” w SSMS – jest to zdecydowanie prostszy sposób, więc nie będę tego zbędnie komplikował.
br>
br>
UTWORZENIE JOB’a – KROK PO KROKU:
br>
1. Na początku sprawdź, czy „SQL Server Agent” jest włączony, odpowiada on m.in. za pracę JOB’ów.
Jeżeli nie jest włączony to w menu rozwijanym klikając PPM na „SQL Server Agent” jest opcja „Start”, za pomocą której należy uruchomić agenta:
2. Następnie rozwiń węzeł „SQL Server Agent” i PPM kliknij na „Jobs” wybierając opcję „New Job…”:
3. Otworzy się okno „New Job”. W tym oknie na stronie „General” podaj/ustaw ogólne parametry JOB’a:
● Nazwę JOB’a (Name): najlepiej adekwatną do tego, co robi.
● Właściciela (Owner): tylko wskazana osoba będzie mogła edytować tego JOB’a albo użytkownik posiadający rolę sysadmin.
● Kategorię (Category): JOB’y dzielą się na różne kategorie, wg rodzaju zadań, jakie wykonują.
● Opis (Description): w kilku słowach co robi.
● Oznacz jako aktywny (Enabled): Tak
4. Teraz przejdź do strony „Steps”, która dotyczy ustawienia kroku/kroków, jakie JOB będzie wykonywał. Na chwilę obecną nie ma jeszcze żadnego kroku, więc dodaj krok pierwszy klikając na „New…”. Otworzy się nowe okno „New Job Step”. W tym oknie na stronie „General” podaj/ustaw ogólne parametry kroku:
● Nazwę kroku (Step name): najlepiej adekwatną do tego, co robi.
● Typ kroku (Type): kroki dzielą się na różne kategorie, wg rodzaju zadań, jakie wykonują.
● Uruchom jako (Run as): można wybrać użytkownika, czyli konto, na którym JOB będzie uruchamiany. Na chwilę obecną nie mamy nic do wyboru, więc zostawiamy tak jak jest.
● Wybierz bazę (Database): czyli bazę, na której ten krok mechanizmu ma być wykonywany.
● Wpisz kwerendę do wykonania (Command): w tym miejscu można zaimplementować własną kwerendę SQL.
W pierwszym przykładzie uruchomimy istniejącą procedurę (nic nie robiącą): EXEC dbo.KR20_P_Procedura_2_ParametrPrint 1:
5. Teraz w tym samym oknie „New Job Step” przejdź do strony „Advanced” w celu ustawień zaawansowanych opcji kroku:
● Co ma się wydarzyć po zakończeniu działania kroku sukcesem (On success action): wybieramy przejście do następnego kroku. Jeśli jest tylko jeden krok tak, jak w naszym przypadku to JOB zakończy swoje działanie.
● Czy mają być wykonywane kolejne próby wykonania kroku (Retry attempts): zostawiamy 0.
● Jeżeli mają być kolejne próby wykonania tego kroku, to określamy interwał czasowy (Retry interval (minutes)): w naszym pierwszym JOB’ie nie ma kolejnych prób wykonania więc pozostawiamy ten parametr bez zmiany na 0.
● Co ma się wydarzyć po zakończeniu działania kroku błędem (On failure action): ustawiamy wyjście z JOB’a z zapisaniem raportu o błędzie.
● W razie potrzeby jest możliwość zapisywania logów w bazie danych. Jak później Ci pokażę jest dostęp do historii wykonań JOB’a, jednak administracyjnie można ograniczyć tą historię do określonej ilości z różnych (uzasadnionych oczywiście) powodów.
● Uruchomienie kroku jako (Run as user): można wybrać użytkownika, czyli konto, na którym krok będzie uruchamiany. W tym celu kliknij na „…” przy tej opcji.
● Otworzy się nowe okno „Select User”, w którym kliknij „Object Types…”. Otworzy się kolejne okno „Select Object Types”, w którym wybierz „User” i kliknij „OK”.
6. Teraz w oknie „Select User” kliknij opcję „Browse…”, otworzy się kolejne okno „Browse for Objects”, zaznacz w nim „[dbo]” i kliknij „OK”.
7. Teraz zamknij okno „Select User” klikając „OK”, oraz zamknij okno „New Job Step” klikając „OK”.
● W tym momencie został utworzony pierwszy i w naszym przypadku jedyny krok JOB’a.
8. Teraz w oknie „New Job” przejdź do strony „Schedules” w celu ustalenia planu i kliknij „New…”. Otworzy się nowe okno „New Job Schedule”, w którym podaj/ustaw poniższe parametry:
● Nazwę planu wykonania (Name): najlepiej adekwatną do tego, co robi.
● Typ planu (Schedule Type): kiedy ten krok zadania ma być wykonywany.
● Zwróć uwagę na checkbox „Enabled” – musi być oznaczony na Tak, żeby JOB w ogóle został wykonany.
● Wszystkie pozostałe opcje zaznacz analogicznie, jak na zrzucie z ekranu. Zauważ, że w zależności od wybranej opcji częstotliwości, dostępne opcje są inne. W naszym przykładzie ustawimy dzienne działanie JOB’a, raz dziennie o godzinie 3:00 w nocy od dnia bieżącego do… brak określenia, czyli póki co, cały czas.
9. Kliknij „OK” zamykając okno „New Job Schedule” oraz zakończ tworzenie nowego JOB’a klikając „OK” w oknie „New Job”. To nie jest oczywiście koniec konfiguracji JOB’a. Zostało nam jeszcze wiele możliwych do ustawienia opcji, ale na obecną chwilę na tym zakończymy. Pozostałe opcje są stosunkowo zaawansowane – dotyczą opcji związanych z alertami oraz powiadomieniami, które wcześniej trzeba skonfigurować od strony administracyjnej.
10. Działanie JOB’a ustawiliśmy na godzinę 3:00 w nocy każdej doby, ale żeby od razu przetestować jego działanie, odśwież w SSMS w oknie „Object Explorer” węzeł „SQL Server Agent / Jobs” i PPM na JOB’ie „[ Pierwszy Job Uruchamiający Procedurę ]” kliknij opcję „Start Job at Step…”
11. Podczas działania JOB’a widoczne jest okno „Start Jobs – …”:
12. Klikając PPM na naszym JOB’ie wybierz „View History”:
13. Otworzy nam się okno „Log File Viewer”. Automatycznie w lewym panelu zaznaczony zostanie nasz JOB, a w prawym panelu są dostępne informacje dotyczące historii wykonań JOB’a – po rozwinięciu klikając w (+). Są tutaj istotne informacje szczególnie w przypadku wystąpienia błędu wykonania JOB’a:
14. JOB’a można włączać i wyłączać za pomocą opcji „Enable” i „Disable” w menu rozwijanym na wybranym JOB’ie:
Przy wyłączonym agencie „SQL Server Agent” JOB’y nie są uruchamiane. Agent jest usługą odpowiadającą m.in. za uruchamianie naszych JOB’ów.
br>
br>
PLIKI DO ŚCIĄGNIĘCIA:
1. 011_Mechanizmy_Automatyczne_JOBS_Procedura.sql
br>