Wszystko o Twoich zadaniach SQL Server Agenta – raport w PowerShell

W pracy administratora nieuniknione są okna mateinancowe, bo co innego zrobić gdy mamy problem i pozostał nam tylko restart serwera? 🙂 Mimo, że to żart to myślę, że każdy chociaż raz, czegoś takiego doświadczył. Najgorsze jest to, że bywa to skuteczne (:.  A poważniej i wracając do tematu, pewne poprawki do OS, Service Packi do SQL Servera, zmiany w rejestrze wymagają restartu.  To tylko proste przykłady ale można wymieniać więcej świadomych przyczyny przez które nasze systemy przez pewien czas przestają być dostępne.

W obecnych czasach i przy takiej symbiozie systemów z biznesem możemy wykonywać to tylko w ściśle określonych dniach, godzinach. Sytuacje pogarsza to, że systemy są między sobą coraz bardziej zintegrowane np. systemy workflow, systemy raportujące, zasilania hurtowni (np. pakiety IS).

Z perspektywy DBA, dwie ostatnie kwestie są bardzo istotne. Co, kiedy, jak długo, co z czym?. Takie informację są w naszych systemach tylko trzeba wiedzieć gdzie szukać. Kopalnią wiedzy o Jobach jest baza msdb, natomiast o pakietach IS baza SSISDB. Kwestia wyciągnięcia właściwych informacji, przetworzenia i odpowiedniej prezentacji.

Zacznijmy od wyciągnięcia informacji.

Poniższe zapytanie z bazy msdb zwróci nam między innymi aktywne joby wraz z średnim czasem ich przetwarzania oraz datą następnego uruchomienia:.

Kolejne zapytanie wykorzystuję bazę SSISDB w której jesteśmy wystanie wydłubać na prawdę sporo informacji.

W kwestii przetworzenia i prezentacji te dwa zapytanie ubrałem w kawałek kodu PowerShell aby móc przygotować coś takiego.

Przykładowy raport -> Report_Jobs_SQL_260520170938

Ten „kawałek kodu” przerodził się w moduł który składa się z dwóch funkcji (jest jeszcze trzeci ale mało istotny):

Polecenie Get-SQLServerJobs zwracam nam obiekty o zadaniach.

Natomias Show-SQLServerJobsReport przetwarza te obiekty i zwraca nam htmla, przyjaznego i przejrzystego dla oka.

Mając takie zestawienie mamy spory przegląd sytuacji. Pozwala nam wybrać dobry moment na okno serwisowe. Idealnie sprawdza się również przy ustalaniu harmonogramu tak aby przy pewnych zadaniach uniknąć zrównoleglania.

Pobierz moduł SQLServerJobsModule –  SQLServerJobsModule.zip (76 pobrań)

[Aktualiacja]

Moduł dostępny na portalu PowerShell Gallery – SQLServerJobsModule

Jako, że w skrypcie wykorzystuję pewne informacje z SSISDB, to pozwolę sobie wspomnieć że na SQLDay była sesja związana z „SSISDB i SSIS catalog od środka”. Niestety nie udało mi się na niej być ale pewnie niedługo będzie na Channel9. Sesje (mimo, że nie widziałem) jak i swój moduł polecam (:.

Ostatnia sprawa, jak będziesz miał jakieś uwagi lub problemy, pisz – mnadobnik+blog@gmail.com.

Z pasją poświęcam czas na zdobywanie wiedzy w zakresie szeroko rozumianej Data Platform. Zachwycony językiem skryptowym Windows PowerShell. Swoją wiedzę, doświadczenia i spostrzeżenia opisuję na blogu.

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *