Łą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.