Łączenie zadań agenta programu SQL Server


9

Mam kilka pakietów roboczych dla każdego Mam skonfigurowane zadanie w agencie serwera SQL. Czasami powinienem biec razem. Jaki jest najlepszy sposób, aby uruchomić je wszystkie w danej sekwencji? Jestem trochę zaskoczony, że agent serwera SQL nie może uwzględnić zadań jako kroków zadania do wykonania. Próbowałem


1
+2 Myślałem o tej ostatniej nocy :)
jcolebrand

1
czy każdy z twoich przedmiotów musi być osobną pracą? Czy można je skonfigurować jako zadanie główne z osobnymi krokami zadania i dla każdego kroku zadania dodać t-sql lub inną logikę, która określa, czy krok powinien zostać uruchomiony i jak (np. Jeśli (warunek = prawda) działa inaczej, nic nie rób
johndacostaa

Dziękuję wszystkim za udzielenie mi pomocy, wygląda na to, że Aarons zasugerował sposób, aby zbliżyć się do tego, czego potrzebuję.
Zobaczę,

Mówisz „paczki”, czy masz na myśli paczki SSIS?
SqlSandwiches

zgodził się z Johnem DaCostą. Użyj kroków z warunkami.
Alex_L,

Odpowiedzi:


5

Istnieją narzędzia innych firm, które pozwolą ci to zrobić, jeśli nie masz czasu na naukę lub istniejącej wiedzy specjalistycznej, aby korzystać z SSIS. Uwaga: Pracuję dla jednej z tych firm. Sprawdź SQL Sentry - obsługuje zadania SQL Server (w tym pakiety SSIS), zaplanowane zadania Windows, a nawet zadania Oracle. Oto funkcje programu SQL Server (w tym tworzenie łańcuchów i kolejkowanie):

Niestety nie sądzę, że będziesz w stanie samodzielnie używać agenta SQL do łączenia wielu zadań. Sugerowana przez Marian metoda sp_start_job uruchamia zadania asynchronicznie; nie możesz czekać na ich zakończenie przed przejściem do następnego polecenia lub następnego kroku.


Umm, myślę, że może on przeszukiwać tabele systemowe msdb i mieć status innych zadań (i ich kroków). Jeśli się mylę, przeproszę cię i dam ci 6 paczek za ujawnienie tego :-).
Marian

Nie rozumiem o co ci chodzi. W jaki sposób odpytywanie tabel msdb pomoże mu połączyć zadania razem? DO 1 = 1, dopóki status się nie zmieni? Powiadomienia o zapytaniach? Oczywiście istnieje wiele sposobów, aby to zrobić ręcznie, ale będzie to o wiele bardziej skomplikowane niż wywoływanie sp_start_job.
Aaron Bertrand

8

Agenta SQL nie uważa się za „klasę korporacyjną” jako program do planowania zadań. Brakuje mu wielu funkcji, które musisz zbudować samodzielnie. Jednym z takich przykładów byłyby zależności. W rezultacie jesteś zmuszony umieścić większość tej logiki w pakietach SSIS. Niekoniecznie zła rzecz ... po prostu ból w budowaniu i zarządzaniu sobą.

Tak więc, moja odpowiedź, zbuduj pakiet SSIS i użyj niektórych poleceń t-sql, aby wywoływać zadania SQL Agent zgodnie z potrzebami. Upewnij się, że masz jasno określone wymagania i scenariusze. Na przykład możesz nie chcieć, aby wiele zadań trafiało do tych samych tabel jednocześnie.

HTH


Głupie, że oczekuję harmonogramu „Enterprise” w tak dojrzałym produkcie „Enterprise Edition” :). Miałem nadzieję, ponieważ mogę uwzględnić wiele rzeczy jako krok, zabawne, że najbardziej oczywista (inna praca) nie jest dostępna jako obiekt wykonywalny. Korzystam z zadań, aby uruchamiać pakiety SSIS, które mają dużą złożoność, konieczność zbudowania kolejnego pakietu SSIS w celu elastycznego uruchamiania zadań nie wydaje mi się właściwym podejściem. Zwłaszcza, że ​​znów skończę z asynch sp_start_job.
nojetlag

6

Powinieneś spróbować użyć skryptu T-SQL w krokach zadań, używając systemowej procedury przechowywanej sp_start_job . Pozwoli ci to ustalić, ile prac chcesz.


Jak wspomina Aaron, nie pozwoli mi to zachować określonej sekwencji, ponieważ wszyscy będą strzelać prawie w tym samym czasie (ze względu na to, że są asynchroniczni). Więc to nie jest tak naprawdę podejście łańcuchowe, a raczej podejście kolekcjonerskie :)
nojetlag

Ok, może nie jest to bardzo proste, ale nadal możesz przeszukiwać tabele systemowe msdb, możesz poczekać na określony czas .. a następnie ponownie wykonać zapytanie. Możesz też utworzyć tabelę śledzenia, w której ustalasz status kroków zadania i na podstawie wyzwalacza możesz automatycznie uruchomić kolejne kroki. Lub możesz kupić narzędzie, które to robi i dodaje nieco więcej wartości, a także pokazuje fantazyjny interfejs użytkownika :-). Istnieją opcje dla każdego ..
Marian
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.