TechNet
Exportieren (0) Drucken
Alle erweitern

SQL Server-Agent

 

Betrifft: SQL Server 2016 Preview

Der SQL Server-Agent ist ein Microsoft Windows-Dienst, der geplante administrative Tasks in SQL Server 2014 ausführt, die als Aufträge bezeichnet werden.

In diesem Thema

Der SQL Server-Agent verwendet SQL Server, um Auftragsinformationen zu speichern. Aufträge enthalten einen oder mehrere Auftragsschritte. Jeder Schritt enthält einen eigenen Task, z. B. das Sichern einer Datenbank.

Der SQL Server-Agent kann einen Auftrag anhand eines Zeitplans, als Reaktion auf ein bestimmtes Ereignis oder bei Bedarf ausführen. Wenn Sie z. B. am Ende jedes Arbeitstages alle Server des Unternehmens sichern möchten, können Sie diesen Task automatisieren. Planen Sie die Sicherung so, dass sie montags bis freitags nach 22:00 Uhr ausgeführt wird. Falls bei der Sicherung ein Problem auftritt, kann der SQL Server-Agent das Ereignis aufzeichnen und Sie benachrichtigen.

System_CAPS_ICON_note.jpg Hinweis


Der SQL Server-Agent-Dienst ist standardmäßig deaktiviert, wenn SQL Server 2014 installiert ist, es sei denn, der Benutzer legt explizit fest, dass der Dienst automatisch gestartet werden soll.

Arrow icon used with Back to Top linkBookmark link 'Intro' is broken in topic '{"project_id":"8adced44-b15e-4e56-8b93-87bb9eea42d4","entity_id":"8d1dc600-aabb-416f-b3af-fbc9fccfd0ec","entity_type":"Article","locale":"de-DE"}'. Rebuilding the topic '{"project_id":"8adced44-b15e-4e56-8b93-87bb9eea42d4","entity_id":"8d1dc600-aabb-416f-b3af-fbc9fccfd0ec","entity_type":"Article","locale":"de-DE"}' may solve the problem.

Der SQL Server-Agent verwendet die folgenden Komponenten, um die auszuführenden Aufgaben, den Zeitpunkt der Ausführung und die Meldung erfolgreicher bzw. fehlgeschlagener Aufgaben zu definieren.

Aufträge

Ein Auftrag umfasst eine angegebene Reihe von Aktionen, die der SQL Server-Agent ausführt. Durch die Verwendung von Aufträgen können Sie eine Verwaltungsaufgabe so definieren, dass diese ein- oder mehrmals ausgeführt und der erfolgreiche oder fehlgeschlagene Abschluss der Ausführung überwacht werden kann. Aufträge können auf einem lokalen oder mehreren Remoteservern ausgeführt werden.

System_CAPS_ICON_important.jpg Wichtig


SQL Server-Agentaufträge, die zu der Zeit eines Failoverereignisses auf einer SQL Server-Failoverclusterinstanz ausgeführt werden, werden nach dem Failover nicht zu einem anderen Failoverclusterknoten fortgesetzt. SQL Server Agentaufträge, die ausgeführt werden, wenn ein Hyper-V-Knoten angehalten wird, werden nicht fortgesetzt, wenn die Pause ein Failover zu einem anderen Knoten verursacht. Aufträge, die begonnen, aber wegen eines Failoverereignisses nicht abgeschlossen werden, werden als gestartet protokolliert, zeigen jedoch keine weiteren Protokolleinträge für Abschluss oder Fehler an. SQL Server Agentaufträge in diesen Szenarien wurden scheinbar nie beendet.

Für die Ausführung von Aufträgen gibt es mehrere Möglichkeiten:

  • Ausführung gemäß einem Zeitplan oder mehreren Zeitplänen.

  • Ausführung als Reaktion auf eine oder mehrere Warnungen.

  • Durch Ausführen der gespeicherten Prozedur sp_start_job.

Die einzelnen Aktionen im Rahmen eines Auftrags werden als Auftragsschritte bezeichnet. Ein Auftragsschritt kann beispielsweise in der Ausführung einer Transact-SQL-Anweisung, der Ausführung eines SSIS-Pakets oder der Ausgabe eines Befehls an einen Analysis Services-Server bestehen. Auftragsschritte werden als Teil des Auftrags verwaltet.

Jeder Auftragsschritt wird in einem bestimmten Sicherheitskontext ausgeführt. Bei Auftragsschritten, die Transact-SQL verwenden, nutzen Sie zum Festlegen des Sicherheitskontexts für den Auftragsschritt die EXECUTE AS-Anweisung. Bei anderen Arten von Auftragsschritten verwenden Sie ein Proxykonto, um den Sicherheitskontext für den Auftragsschritt festzulegen.

Zeitpläne

Durch einen Zeitplan wird angegeben, wann ein Auftrag ausgeführt wird. Im Rahmen eines Zeitplans können auch mehrere Aufträge ausgeführt werden, und für einen Auftrag können mehrere Zeitpläne gelten. Ein Zeitplan kann bezüglich des Ausführungszeitpunktes für einen Auftrag folgende Bedingungen definieren:

  • Ausführung sobald der SQL Server-Agent startet.

  • Ausführung, wenn sich die CPU-Auslastung des Computers in einem Bereich befindet, den Sie als Leerlauf definiert haben.

  • Einmalige Ausführung zu einem angegebenen Zeitpunkt und Datum.

  • Ausführung auf wiederkehrender Basis.

Weitere Informationen finden Sie unter Anlegen und Zuweisen von Zeitplänen zu Aufträgen.

Warnungen

Eine Warnung ist eine automatische Reaktion auf ein bestimmtes Ereignis. Bei einem Ereignis kann es sich z. B. um das Starten eines Auftrags oder um das Erreichen eines bestimmten Schwellenwertes im Hinblick auf die Systemressourcen handeln. Sie definieren die Bedingungen, unter denen eine Warnung auftritt.

Eine Warnung kann als Reaktion auf eine der folgenden Bedingungen ausgegeben werden:

  • SQL Server-Ereignisse

  • SQL Server-Leistungsbedingungen

  • Ereignisse in der Microsoft Windows-Verwaltungsinstrumentation (WMI) auf dem Computer, auf dem der SQL Server-Agent ausgeführt wird.

Eine Warnung kann die folgenden Aktionen ausführen:

  • Benachrichtigen eines oder mehrerer Operatoren.

  • Ausführen eines Auftrags.

Weitere Informationen finden Sie unter Warnungen.

Operatoren

Ein Operator definiert die Kontaktinformationen einer Person, die für die Verwaltung einer oder mehrerer SQL Server-Instanzen zuständig ist. In einigen Unternehmen werden die Aufgaben eines Operators einer einzelnen Person zugewiesen. In größeren Unternehmen mit mehreren Servern teilen sich mehrere Personen die Aufgaben des Operators. Der Operator enthält keine Sicherheitsinformationen und definiert auch nicht den Sicherheitsprinzipal.

SQL Server kann Operatoren bei Warnungen folgendermaßen benachrichtigen:

  • E-Mail

  • Pager (per E-Mail)

  • net send

System_CAPS_ICON_note.jpg Hinweis


Um Benachrichtigungen mit net send zu senden, muss der Windows Messenger-Dienst auf dem Computer mit dem SQL Server-Agent gestartet werden.

System_CAPS_ICON_important.jpg Wichtig


Die Pager- und net send-Optionen werden in zukünftigen Versionen von SQL Server nicht mehr im SQL Server-Agent zur Verfügung stehen. Vermeiden Sie die Verwendung dieser Funktionen bei neuen Entwicklungsarbeiten, und planen Sie die Änderung von Anwendungen, die diese Funktionen zurzeit verwenden.

Um Operatoren Benachrichtigungen per E-Mail oder Pager zu senden, müssen Sie den SQL Server-Agent so konfigurieren, dass Datenbank-E-Mail verwendet wird. Weitere Informationen finden Sie unter Database Mail.

Ein Operator kann auch als Alias für eine Gruppe von Personen definiert werden. Auf diese Weise werden alle Mitglieder dieses Alias zur selben Zeit benachrichtigt. Weitere Informationen finden Sie unter Operatoren.

Arrow icon used with Back to Top linkBookmark link 'Intro' is broken in topic '{"project_id":"8adced44-b15e-4e56-8b93-87bb9eea42d4","entity_id":"8d1dc600-aabb-416f-b3af-fbc9fccfd0ec","entity_type":"Article","locale":"de-DE"}'. Rebuilding the topic '{"project_id":"8adced44-b15e-4e56-8b93-87bb9eea42d4","entity_id":"8d1dc600-aabb-416f-b3af-fbc9fccfd0ec","entity_type":"Article","locale":"de-DE"}' may solve the problem.

Der SQL Server-Agent verwendet die festen Datenbankrollen SQLAgentUserRole, SQLAgentReaderRole und SQLAgentOperatorRole in der msdb-Datenbank, um den Zugriff auf den SQL Server-Agent für Benutzer zu steuern, die keine Mitglieder der festen Serverrolle sysadmin sind. Neben diesen festen Datenbankrollen können Datenbankadministratoren mithilfe von Subsystemen und Proxys sicherstellen, dass jeder Auftragsschritt mit den mindestens erforderlichen Berechtigungen ausgeführt wird.

Rollen

Mitglieder der festen Datenbankrollen SQLAgentUserRole, SQLAgentReaderRole und SQLAgentOperatorRole in msdb und Mitglieder der festen Serverrolle sysadmin haben Zugriff auf den SQL Server-Agent. Ein Benutzer, der keiner dieser Rollen angehört, kann den SQL Server-Agent nicht verwenden. Weitere Informationen zu den vom SQL Server-Agent verwendeten Rollen finden Sie unter Implementieren der SQL Server-Agent-Sicherheit.

Subsysteme

Ein Subsystem ist ein vordefiniertes Objekt, das die für einen Auftragsschritt verfügbare Funktionalität darstellt. Jeder Proxy hat Zugriff auf mindestens ein Subsystem. Subsysteme bieten Sicherheit, weil sie den Zugriff auf die für ein Proxykonto verfügbare Funktionalität begrenzen. Jeder Auftragsschritt wird im Kontext eines Proxys ausgeführt, mit Ausnahme von Transact-SQL-Auftragsschritten. Bei Transact-SQL-Auftragsschritten wird der Sicherheitskontext mithilfe des EXECUTE AS-Befehls festgelegt.

SQL Server definiert die in der folgenden Tabelle aufgeführten Subsysteme:

Name des SubsystemsBeschreibung
Microsoft ActiveX-SkriptAusführen eines ActiveX-Skript-Auftragsschritts. Important: Das ActiveX Scripting-Subsystem wird in einer zukünftigen Version von MicrosoftSQL 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.
Betriebssystem (CmdExec)Ausführen eines ausführbaren Programms.
PowerShellAusführen eines PowerShell-Skripterstellungs-Auftragsschritts.
ReplikationsverteilerAusführen eines Auftragsschritts, der den Replikationsverteilungs-Agent aktiviert.
ReplikationsmergeAusführen eines Auftragsschritts, der den Replikationsmerge-Agent aktiviert.
Replikation-WarteschlangenleserAusführen eines Auftragsschritts, der den Warteschlangenlese-Agent der Microsoft SQL Server-Replikation aktiviert.
ReplikationsmomentaufnahmeAusführen eines Auftragsschritts, der den Replikationsmomentaufnahme-Agent aktiviert.
Replikationstransaktionsprotokoll-LeserAusführen eines Auftragsschritts, der den Protokolllese-Agent aktiviert.
Analysis Services-BefehlAusführen eines Analysis Services-Befehls.
Analysis Services-AbfrageAusführen einer Analysis Services-Abfrage.
SSIS-PaketausführungAusführen eines SSIS-Pakets.
System_CAPS_ICON_note.jpg Hinweis


Da Transact-SQL-Auftragsschritte keine Proxys verwenden, gibt es kein Subsystem des SQL Server-Agents für Transact-SQL-Auftragsschritte.

Der SQL Server-Agent erzwingt Subsystemeinschränkungen, selbst wenn der Sicherheitsprinzipal für den Proxy normalerweise die Berechtigung zum Ausführen des Tasks im Auftragsschritt hätte. Beispielsweise kann ein Proxy für einen Benutzer, der Mitglied der festen Serverrolle sysadmin ist, nur einen SSIS-Auftragsschritt ausführen, wenn das Proxykonto Zugriff auf das SSIS-Subsystem hat. Der Benutzer kann jedoch SSIS-Pakete ausführen.

Proxys

Der SQL Server-Agent verwendet Proxys zum Verwalten von Sicherheitskontexten. Ein Proxy kann für mehrere Auftragsschritte verwendet werden. Mitglieder der festen Serverrolle sysadmin können Proxys erstellen.

Jeder Proxy entspricht Sicherheitsanmeldeinformationen. Jeder Proxy kann einer Gruppe von Subsystemen und Anmeldenamen zugeordnet werden. Der Proxy kann nur für Auftragsschritte benutzt werden, die ein dem Proxy zugeordnetes Subsystem verwenden. Um einen Auftragsschritt zu erstellen, der einen bestimmten Proxy verwendet, muss der Auftragsbesitzer einen Anmeldenamen verwenden, der diesem Proxy zugeordnet ist, oder er muss ein Mitglied einer Rolle mit unbeschränktem Zugriff auf Proxys sein. Mitglieder der festen Serverrolle sysadmin haben unbeschränkten Zugriff auf Proxys. Mitglieder von SQLAgentUserRole, SQLAgentReaderRole oder SQLAgentOperatorRole können nur Proxys verwenden, für die Ihnen der Zugriff erteilt wurde. Jedem Benutzer, der Mitglied einer dieser festen Datenbankrollen des SQL Server-Agents ist, muss Zugriff auf bestimmte Proxys gewährt werden, damit er Auftragsschritte erstellen kann, bei denen diese Proxys verwendet werden.

Konfigurieren Sie den SQL Server-Agent anhand der folgenden Schritte zur Automatisierung der SQL Server-Verwaltung:

  1. Überprüfen Sie, welche administrativen Tasks oder Serverereignisse regelmäßig auftreten und ob diese Tasks oder Ereignisse programmgesteuert verwaltet werden können. Ein Task eignet sich für die Automatisierung, wenn er eine festgelegte Reihenfolge von Schritten umfasst und zu einem bestimmten Zeitpunkt oder als Reaktion auf ein bestimmtes Ereignis auftritt.

  2. Definieren Sie die Aufträge, Zeitpläne, Warnungen und Operatoren mithilfe von SQL Server Management Studio, Transact-SQL-Skripts oder SQL Server Management Objects (SMO). Weitere Informationen finden Sie unter Erstellen von Aufträgen.

  3. Führen Sie die SQL Server-Agent-Aufträge aus, die Sie definiert haben.

System_CAPS_ICON_note.jpg Hinweis


Für die Standardinstanz von SQL Server erhält der SQL Server-Dienst den Namen SQLSERVERAGENT. Für benannte Instanzen erhält der SQL Server-Agent-Dienst den Namen "SQLAgent$instancename".

Falls Sie mehrere Instanzen von SQL Server ausführen, können Sie Tasks, die auf allen Instanzen ausgeführt werden müssen, mithilfe der Multiserververwaltung automatisieren. Weitere Informationen finden Sie unter Automatisierte Verwaltung in einem Unternehmen.

Verwenden Sie für die ersten Schritte mit dem SQL Server-Agent die folgenden Aufgaben:

BeschreibungThema
Beschreibt, wie SQL Server-Agent konfiguriert wird.Konfigurieren des SQL Server-Agents
Beschreibt, wie der SQL Server-Agent-Dienst gestartet, beendet und angehalten wird.Starten, Beenden oder Anhalten des SQL Server-Agent-Dienstes
Beschreibt Überlegungen zum Angeben eines Kontos für den SQL Server-Agent-Dienst.Auswählen eines Kontos für den SQL Server-Agent-Dienst
Beschreibt, wie das SQL Server-Agent-Fehlerprotokoll verwendet wird.SQL Server-Agent-Fehlerprotokoll
Beschreibt, wie Leistungsobjekte verwendet werden.Verwenden von Leistungsobjekten
Beschreibt den Wartungsplanungs-Assistenten, ein Hilfsprogramm, mit dem Sie Aufträge, Warnungen und Operatoren erstellen können, um die Verwaltung einer Instanz von SQL Server zu automatisieren.Use the Maintenance Plan Wizard
Beschreibt, wie administrative Aufgaben mit dem SQL Server-Agent automatisiert werden.Automatisierte Administrationstasks (SQL Server-Agent)

Arrow icon used with Back to Top linkBookmark link 'Intro' is broken in topic '{"project_id":"8adced44-b15e-4e56-8b93-87bb9eea42d4","entity_id":"8d1dc600-aabb-416f-b3af-fbc9fccfd0ec","entity_type":"Article","locale":"de-DE"}'. Rebuilding the topic '{"project_id":"8adced44-b15e-4e56-8b93-87bb9eea42d4","entity_id":"8d1dc600-aabb-416f-b3af-fbc9fccfd0ec","entity_type":"Article","locale":"de-DE"}' may solve the problem.

Surface Area Configuration

Community-Beiträge

Anzeigen:
© 2016 Microsoft