Verwalten von Auftragsschritten
Ein Auftragsschritt ist eine Aktion, die der Auftrag auf einer Datenbank oder einem Server ausführt. Jeder Auftrag muss mindestens einen Auftragsschritt aufweisen. Folgende Auftragsschritte sind möglich:
Ausführbare Programme und Betriebssystembefehle.
Transact-SQL-Anweisungen einschließlich gespeicherter Prozeduren und erweiterter gespeicherter Prozeduren.
PowerShell-Skripts.
MicrosoftActiveX-Skripts.
Replikationstasks.
Analysis Services-Tasks.
Integration Services-Pakete.
Jeder Auftragsschritt wird in einem bestimmten Sicherheitskontext ausgeführt. Wenn der Auftragsschritt einen Proxy erfordert, wird er im Sicherheitskontext der Anmeldeinformationen des Proxys ausgeführt. Wenn ein Auftragsschritt keinen Proxy erfordert, wird er im Kontext des SQL Server-Agent-Dienstkontos ausgeführt. Nur Mitglieder der festen Serverrolle sysadmin können Aufträge erstellen, die nicht ausdrücklich einen Proxy angeben.
Weil Auftragsschritte im Kontext eines bestimmten Microsoft Windows-Benutzers ausgeführt werden, muss dieser Benutzer über die Berechtigungen und Konfigurationen verfügen, die für die Ausführung des Auftragsschritts erforderlich sind. Wenn Sie beispielsweise einen Auftrag erstellen, der einen Laufwerkbuchstaben oder einen UNC-Pfad (Universal Naming Convention) erfordert, können die Auftragsschritte unter Ihrem Windows-Benutzerkonto ausgeführt werden, während die Tasks getestet werden. Allerdings muss der Windows-Benutzer für den Auftragsschritt auch über die notwendigen Berechtigungen, die Laufwerkbuchstabenkonfigurationen oder den Zugriff auf das erforderliche Laufwerk verfügen. Andernfalls erzeugt der Auftragsschritt einen Fehler. Um dieses Problem zu verhindern, stellen Sie sicher, dass der Proxy für jeden Auftragsschritt über die notwendigen Berechtigungen für den Task verfügt, von dem der Auftragsschritt ausgeführt wird. Weitere Informationen finden Sie unter Sicherheit und Schutz (Datenbankmodul).
Auftragsschrittprotokolle
Der SQL Server-Agent kann die Ausgabe bestimmter Auftragsschritte entweder in eine Betriebssystemdatei oder in die sysjobstepslogs-Tabelle der msdb-Datenbank schreiben. Von den folgenden Auftragsschritttypen können Ausgaben in beide Ziele geschrieben werden:
Ausführbare Programme und Betriebssystembefehle.
Transact-SQL-Anweisungen.
Analysis Services-Tasks.
Nur von Auftragsschritten, die von Benutzern ausgeführt werden, die Mitglieder der festen Serverrolle sysadmin sind, können Auftragsschrittausgaben in Betriebssystemdateien geschrieben werden. Wenn Auftragsschritte von Benutzern ausgeführt werden, die Mitglieder der festen Datenbankrolle SQLAgentUserRole, SQLAgentReaderRole oder SQLAgentOperatorRole in der msdb-Datenbank sind, kann die Ausgabe dieser Auftragsschritte nur in die sysjobstepslogs-Tabelle geschrieben werden.
Auftragsschritte werden automatisch gelöscht, wenn Aufträge oder Auftragsschritte gelöscht werden.
Hinweis |
---|
Das Protokollieren von Replikationstasks und Integration Services-Paketauftragsschritten wird vom jeweiligen Subsystem durchgeführt. Sie können zum Konfigurieren der Auftragsschrittprotokollierung nicht den SQL Server-Agent für diese Art von Auftragsschritten verwenden. |
Ausführbare Programme und Betriebssystembefehle als Auftragsschritte
Ausführbare Programme und Betriebssystembefehle können als Auftragsschritte verwendet werden. Diese Dateien können die Dateierweiterungen BAT, CMD, COM oder EXE aufweisen.
Wenn Sie ein ausführbares Programm oder einen Betriebssystembefehl als Auftragsschritt verwenden, müssen Sie Folgendes angeben:
Den Prozessexitcode, der zurückgegeben wird, wenn der Befehl erfolgreich ausgeführt wurde.
Den auszuführenden Befehl. Beim Ausführen eines Betriebssystembefehls handelt es sich hierbei einfach um den Befehl selbst. Bei einem externen Programm ist dies der Name des Programms und die Argumente für das Programm, z.B.: C:\Programme\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who".
Hinweis Sie müssen den vollständigen Pfad zur ausführbaren Datei angeben, wenn diese sich nicht in dem Verzeichnis befindet, das im Systempfad oder dem Pfad für den Benutzer angegeben ist, als der der Auftragsschritt ausgeführt wird.
Transact-SQL-Auftragsschritte
Beim Erstellen eines Transact-SQL-Auftragsschritts müssen Sie folgende Schritte durchführen:
Identifizieren der Datenbank, in der Sie den Auftrag ausführen.
Eingeben der auszuführenden Transact-SQL-Anweisung. Von der Anweisung wird möglicherweise eine gespeicherte Prozedur oder eine erweiterte gespeicherte Prozedur aufgerufen.
Sie können auch eine vorhandene Transact-SQL-Datei als Befehl für den Auftragsschritt öffnen.
Von Transact-SQL-Auftragsschritten werden keine SQL Server-Agent-Proxys verwendet. Stattdessen wird der Auftragsschritt als Besitzer des Auftragsschritts bzw. als SQL Server-Agent-Dienstkonto ausgeführt, wenn der Besitzer des Auftragsschritts Mitglied der festen Serverrolle sysadmin ist. Mitglieder der festen Serverrolle sysadmin können auch angeben, dass Transact-SQL-Auftragsschritte unter dem Kontext eines anderen Benutzers ausgeführt werden, indem der database_user_name-Parameter der gespeicherten Prozedur sp_add_jobstep verwendet wird. Weitere Informationen finden Sie unter sp_add_jobstep (Transact-SQL).
Hinweis |
---|
Ein einzelner Transact-SQL-Auftragsschritt kann mehrere Batches enthalten. Transact-SQL-Auftragsschritte können mehrere eingebettete GO-Befehle enthalten. |
PowerShell-Skript-Auftragsschritte
Wenn Sie einen PowerShell-Skript-Auftragsschritt erstellen, müssen Sie eins von zwei Elementen als Befehl für den Schritt angeben:
Den Text eines PowerShell-Skripts.
Eine vorhandene PowerShell-Skriptdatei, die geöffnet werden soll.
Das SQL Server Agent PowerShell-Subsystem öffnet eine PowerShell-Sitzung und lädt die SQL Server PowerShell-Snap-Ins. Das als Auftragsschrittbefehl verwendete PowerShell-Skript kann auf den SQL Server PowerShell-Anbieter und auf cmdlets verweisen. Weitere Informationen über das Schreiben von PowerShell-Skripts mithilfe von SQL Server PowerShell-Snap-Ins finden Sie unter SQL Server-PowerShell.
ActiveX-Skript-Auftragsschritte
Wichtig |
---|
Der ActiveX-Skript-Auftragsschritt wird in einer zukünftigen Version von Microsoft SQL Server aus dem SQL Server-Agent entfernt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. |
Wenn Sie einen ActiveX-Skriptauftragsschritt erstellen, ist Folgendes notwendig:
Identifizieren der Skriptsprache, in der der Auftragsschritt geschrieben ist.
Erstellen des ActiveX-Skripts.
Sie können auch eine vorhandene ActiveX-Skriptdatei als Befehl für den Auftragsschritt öffnen. ActiveX-Skriptbefehle können alternativ auch extern (beispielsweise mithilfe von Microsoft Visual Basic) kompiliert und anschließend als ausführbare Programme ausgeführt werden.
Handelt es sich bei dem Befehl eines Auftragsschritts um ein ActiveX-Skript, können Sie das SQLActiveScriptHost-Objekt verwenden, um Ausgaben in das Verlaufsprotokoll des Auftragsschritts zu drucken oder COM-Objekte zu erstellen. Bei SQLActiveScriptHost handelt es sich um ein globales Objekt, das vom Hostsystem des SQL Server-Agents in den Skriptnamensbereich eingefügt wird. Das Objekt verfügt über zwei Methoden: Print und CreateObject. Das folgende Beispiel veranschaulicht, wie ActiveX-Skripts in Visual Basic Scripting Edition (VBScript) funktionieren.
' VBScript example for ActiveX Scripting job step
' Create a Dmo.Server object. The object connects to the
' server on which the script is running.
Set oServer = CreateObject("SQLDmo.SqlServer")
oServer.LoginSecure = True
oServer.Connect "(local)"
'Disconnect and destroy the server object
oServer.DisConnect
Set oServer = nothing
Replikationsauftragsschritte
Wenn Sie Veröffentlichungen und Abonnements mithilfe der Replikation erstellen, werden standardmäßig Replikationsaufträge erstellt. Der Typ der erstellten Aufträge wird durch den Typ der Replikation (Momentaufnahme, Transaktion oder Merge) und die verwendeten Optionen bestimmt.
Replikationsauftragsschritte aktivieren einen dieser Replikations-Agents:
Momentaufnahme-Agent (Momentaufnahmeauftrag)
Protokolllese-Agent (Protokollleserauftrag)
Verteilungs-Agent (Verteilungsauftrag)
Merge-Agent (Mergeauftrag)
Warteschlangenlese-Agent (Warteschlangenleser-Auftrag)
Beim Einrichten der Replikation können Sie zwischen drei Ausführungsarten für die Replikations-Agents wählen: immer nach dem Start des SQL Server-Agents, bei Bedarf oder gemäß einem Zeitplan. Weitere Informationen zu Replikations-Agents finden Sie unter Replikations-Agents (Übersicht).
Analysis Services-Auftragsschritte
Vom SQL Server-Agent werden zwei unterschiedliche Typen von Analysis Services-Auftragsschritten unterstützt: Befehlsauftragsschritte und Abfrageauftragsschritte.
Analysis Services-Befehlsauftragsschritte
Wenn Sie einen Analysis Services-Befehlsauftragsschritt erstellen, müssen Sie folgende Schritte durchführen:
Identifizieren der OLAP-Datenbank, in der Sie den Auftragsschritt ausführen.
Eingeben der auszuführenden Anweisung. Bei der Anweisung muss es sich um eine Execute-Methode von XML für Analysis Services handeln. Die Anweisung enthält möglicherweise keinen vollständigen SOAP-Umschlag (Simple Object Access Protocol) und keine XML für die Analysis Services-Methode Discover . Während SQL Server Management Studio vollständige SOAP-Umschläge und die Discover-Methode unterstützt, ist das bei SQL Server-Agent-Auftragsschritten nicht der Fall.
Analysis Services-Abfrageauftragsschritte
Wenn Sie einen Analysis Services-Abfrageauftragsschritt erstellen, müssen Sie folgende Schritte durchführen:
Identifizieren der OLAP-Datenbank, in der Sie den Auftragsschritt ausführen.
Eingeben der auszuführenden Anweisung. Bei der Anweisung muss es sich um eine MDX-Abfrage handeln (Multidimensional Expressions, mehrdimensionale Ausdrücke).
Weitere Informationen zu MDX finden Sie unter Grundlegendes zu MDX-Abfragen (Analysis Services).
Integration Services-Pakete
Wenn Sie einen Integration Services-Paketauftragsschritt erstellen, müssen Sie folgende Schritte durchführen:
Identifizieren der Paketquelle.
Identifizieren des Paketspeicherorts.
Identifizieren der Konfigurationsdateien, wenn diese für das Paket erforderlich sind.
Identifizieren der Befehlsdateien, wenn diese für das Paket erforderlich sind.
Identifizieren der für das Paket zu verwendenden Überprüfung. Sie können beispielsweise angeben, dass das Paket signiert werden oder eine bestimmte Paket-ID aufweisen muss.
Identifizieren der Datenquellen für das Paket.
Identifizieren der Protokollanbieter für das Paket.
Angeben von Variablen und Werten, die vor dem Ausführen des Pakets festgelegt werden.
Identifizieren von Ausführungsoptionen.
Hinzufügen oder Ändern von Befehlszeilenoptionen.
Hinweis: Wenn Sie das Paket im SSIS-Katalog bereitgestellt und Sie SSIS-Katalog als Paketquelle angegeben haben, werden viele dieser Konfigurationsinformationen automatisch vom Paket abgerufen. Auf der Registerkarte Konfiguration können Sie die Umgebung, Parameterwerte, Verbindungs-Manager-Werte und Eigenschaftenüberschreibungen angeben und ob das Paket in einer 32-Bit-Laufzeitumgebung ausgeführt wird.
Informationen zum Erstellen von Auftragsschritten, von denen Integration Services-Pakete ausgeführt werden, finden Sie unter Aufträge des SQL Server-Agents für Pakete.
Verwandte Aufgaben
Beschreibung |
Thema |
Beschreibt, wie ein Auftragsschritt mit einem ausführbaren Programm erstellt wird. |
|
Beschreibt, wie SQL Server-Agent-Berechtigungen zurückgesetzt werden. |
Konfigurieren eines Benutzers zum Erstellen und Verwalten von SQL Server-Agent-Aufträgen |
Beschreibt, wie ein Transact-SQL-Auftragsschritt erstellt wird. |
|
Beschreibt, wie Optionen für Transact-SQL-Auftragsschritte für den Microsoft SQL Server-Agent erstellt werden. |
|
Beschreibt, wie ein ActiveX-Skript-Auftragsschritt erstellt wird. |
|
Beschreibt, wie SQL Server-Agent-Auftragsschritte erstellt und definiert werden, die SQL Server Analysis Services-Befehle und -Abfragen ausführen. |
|
Beschreibt, welche Aktion SQL Server ausführen sollte, wenn während der Auftragsausführung ein Fehler auftritt. |
Festlegen der Vorgehensweise nach Erfolg oder Fehlschlagen eines Auftragsschritts |
Beschreibt, wie Auftragsschrittdetails im Dialogfeld Auftragsschritt-Eigenschaften angezeigt werden. |
|
Beschreibt, wie ein Auftragsschrittprotokoll des SQL Server-Agents gelöscht wird. |
Siehe auch
Verweis
dbo.sysjobstepslogs (Transact-SQL)