SQL Agent Job remote starten

Häufig besteht zusätzlich zur periodischen Aktualisierung des DWHs mittels SQL Agent Job auch der Bedarf nach einer ad-hoc bzw. vom User veranlassten Aktualisierung des DWHs. Hierfür eignet sich meiner Meinung nach ein kleines Batch-File am besten.

Folgende Schritte sind dafür durchzuführen

Am Server:

  1. SQL Server Login anlegen und den Benutzer zur Datenbank msdb und den SQLAgent-Rollen zuordnen:
    RunSQLAgentJob1
    Siehe auch hier
  2. Dem User das Recht geben die Stored Procedure auszuführen: GRANT EXECUTE ON sp_start_Job TO [DOMAIN\user] Siehe auch hier

 

Am Client:

  1. Installation von sqlcmd als Teil des SQL Server Feature Packs (siehe hier – Achtung: die einzelnen Installationspakete verstecken sich unter „Anweisungen zur Installation“)
  2. Leider wird bei der Installation die PATH Variable nicht ergänzt, sodass man entweder im BAT-File den gesamten Pfad zu sqlcmd.exe angibt oder die PATH-Variable erweitert. Dies ist unter System > Erweiterte Systemeinstellungen > Umgebungsvariablen zu finden. Dort an die Variable PATH das Installationsverzeichnis von sqlcmd ergänzen (zumeist C:\Program Files\
  3. Erstellung des Batchfiles zum Start des Jobs mit etwa folgendem Inhalt
    @echo off
    echo Starte SQL Agent Job 'SQLAgentJob'
    pause
    sqlcmd -S "SERVER\Instance" -E -d MSDB -Q"exec sp_start_job SQLAgentJob"
    echo Job wurde gestartet...
    pause

 

Nachteil dieser Herangehensweise ist, dass der SQL Agent Job asynchron gestartet wird. Das bedeutet, dass das Batchfile nicht auf die Fertigstellung des SQL Agent Jobs wartet. Workarounds sind zahlreiche zu finden (z.B. dieser) aber auch ein Feature Request von Microsoft abgelehnter Feature Request (hier).

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s