SQL Server-AgentSQL Server Agent

SQL ServerSQL Server -Agent ist eAufträge Microsoft WAufträgedows-Dienst, der geplante admAufträgeistrative Tasks Aufträge ausführt, die als Aufträge SQL Server 2017SQL Server 2017..

In diesem ThemaIn This Topic

Vorteile des SQL Server-AgentsBenefits of SQL Server Agent

SQL ServerSQL Server -Agent verwendet SQL ServerSQL Server , um Auftragsinformationen zu speichern. to store job information. Aufträge enthalten einen oder mehrere Auftragsschritte.Jobs contain one or more job steps. Jeder Schritt enthält einen eigenen Task, z. B. das Sichern einer Datenbank.Each step contains its own task, for example, backing up a database.

SQL ServerSQL Server -Agent kann einen Auftrag anhand eines Zeitplans, als Reaktion auf ein bestimmtes Ereignis oder bei Bedarf ausführen. Agent can run a job on a schedule, in response to a specific event, or on demand. Wenn Sie z. B. am Ende jedes Arbeitstages alle Server des Unternehmens sichern möchten, können Sie diesen Task automatisieren.For example, if you want to back up all the company servers every weekday after hours, you can automate this task. 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.Schedule the backup to run after 22:00 Monday through Friday; if the backup encounters a problem, SQL Server Agent can record the event and notify you.

Hinweis

Der SQL ServerSQL Server -Agent-Dienst ist standardmäßig deaktiviert, wenn SQL Server 2017SQL Server 2017 installiert ist, es sei denn, der Benutzer legt explizit fest, dass der Dienst automatisch gestartet werden soll.By default, the SQL ServerSQL Server Agent service is disabled when SQL Server 2017SQL Server 2017 is installed unless the user explicitly chooses to autostart the service.

Komponenten des SQL Server-AgentsSQL Server Agent Components

SQL ServerSQL 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. Agent uses the following components to define the tasks to be performed, when to perform the tasks, and how to report the success or failure of the tasks.

ausführt, die alsJobs

Ein Auftrag umfasst eine angegebene Reihe von Aktionen, die der SQL ServerSQL Server -Agent ausführt.A job is a specified series of actions that SQL ServerSQL Server Agent performs. 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.Use jobs to define an administrative task that can be run one or more times and monitored for success or failure. Aufträge können auf einem lokalen oder mehreren Remoteservern ausgeführt werden.A job can run on one local server or on multiple remote servers.

Wichtig

SQL ServerSQL Server -Agentaufträge, die zu der Zeit eines Failoverereignisses auf einer SQL ServerSQL Server -Failoverclusterinstanz ausgeführt werden, werden nach dem Failover nicht zu einem anderen Failoverclusterknoten fortgesetzt. failover cluster instance do not resume after failover to another failover cluster node. SQL ServerSQL 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. Agent jobs that are running at the time a Hyper-V node is paused do not resume if the pause causes a failover to another node. 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.Jobs that begin but fail to complete because of a failover event are logged as started, but do not show additional log entries for completion or failure. SQL ServerSQL Server Agentaufträge in diesen Szenarien wurden scheinbar nie beendet. Agent jobs in these scenarios appear to have never ended.

Für die Ausführung von Aufträgen gibt es mehrere Möglichkeiten:You can run jobs in several ways:

  • Ausführung gemäß einem Zeitplan oder mehreren Zeitplänen.According to one or more schedules.

  • Ausführung als Reaktion auf eine oder mehrere Warnungen.In response to one or more alerts.

  • Ausführung im Rahmen der gespeicherten Prozedur sp_start_job.By executing the sp_start_job stored procedure.

Die einzelnen Aktionen im Rahmen eines Auftrags werden als Auftragsschrittebezeichnet.Each action in a job is a job step. Ein Auftragsschritt kann beispielsweise in der Ausführung einer Transact-SQLTransact-SQL -Anweisung, der Ausführung eines SSISSSIS -Pakets oder der Ausgabe eines Befehls an einen Analysis Services-Server bestehen.For example, a job step might consist of running a Transact-SQLTransact-SQL statement, executing an SSISSSIS package, or issuing a command to an Analysis Services server. Auftragsschritte werden als Teil des Auftrags verwaltet.Job steps are managed as part of a job.

Jeder Auftragsschritt wird in einem bestimmten Sicherheitskontext ausgeführt.Each job step runs in a specific security context. Bei Auftragsschritten, die Transact-SQLTransact-SQLverwenden, nutzen Sie zum Festlegen des Sicherheitskontexts für den Auftragsschritt die EXECUTE AS-Anweisung.For job steps that use Transact-SQLTransact-SQL, use the EXECUTE AS statement to set the security context for the job step. Bei anderen Arten von Auftragsschritten verwenden Sie ein Proxykonto, um den Sicherheitskontext für den Auftragsschritt festzulegen.For other types of job steps, use a proxy account to set the security context for the job step.

ZeitpläneSchedules

Durch einen Zeitplan wird angegeben, wann ein Auftrag ausgeführt wird.A schedule specifies when a job runs. Im Rahmen eines Zeitplans können auch mehrere Aufträge ausgeführt werden, und für einen Auftrag können mehrere Zeitpläne gelten.More than one job can run on the same schedule, and more than one schedule can apply to the same job. Ein Zeitplan kann bezüglich des Ausführungszeitpunktes für einen Auftrag folgende Bedingungen definieren:A schedule can define the following conditions for the time when a job runs:

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

  • Ausführung, wenn sich die CPU-Auslastung des Computers in einem Bereich befindet, den Sie als Leerlauf definiert haben.Whenever CPU utilization of the computer is at a level you have defined as idle.

  • Einmalige Ausführung zu einem angegebenen Zeitpunkt und Datum.One time, at a specific date and time.

  • Ausführung auf wiederkehrender Basis.On a recurring schedule.

Weitere Informationen finden Sie unter Anlegen und Zuweisen von Zeitplänen zu Aufträgen.For more information, see Create and Attach Schedules to Jobs.

WarnungenAlerts

Eine Warnung ist eine automatische Reaktion auf ein bestimmtes Ereignis.An alert is an automatic response to a specific event. 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.For example, an event can be a job that starts or system resources that reach a specific threshold. Sie definieren die Bedingungen, unter denen eine Warnung auftritt.You define the conditions under which an alert occurs.

Eine Warnung kann als Reaktion auf eine der folgenden Bedingungen ausgegeben werden:An alert can respond to one of the following conditions:

  • SQL ServerSQL Server -Ereignisse events

  • SQL ServerSQL Server -Leistungsbedingungen performance conditions

  • Ereignisse in der Microsoft Windows-Verwaltungsinstrumentation (WMI) auf dem Computer, auf dem der SQL Server-Agent ausgeführt wird.Microsoft Windows Management Instrumentation (WMI) events on the computer where SQL Server Agent is running

Eine Warnung kann die folgenden Aktionen ausführen:An alert can perform the following actions:

  • Benachrichtigen eines oder mehrerer Operatoren.Notify one or more operators

  • Ausführen eines Auftrags.Run a job

Weitere Informationen finden Sie unter Warnungen.For more information, see Alerts.

OperatorenOperators

Ein Operator definiert die Kontaktinformationen einer Person, die für die Verwaltung einer oder mehrerer SQL ServerSQL Server-Instanzen zuständig ist.An operator defines contact information for an individual responsible for the maintenance of one or more instances of SQL ServerSQL Server. In einigen Unternehmen werden die Aufgaben eines Operators einer einzelnen Person zugewiesen.In some enterprises, operator responsibilities are assigned to one individual. In größeren Unternehmen mit mehreren Servern teilen sich mehrere Personen die Aufgaben des Operators.In enterprises with multiple servers, many individuals can share operator responsibilities. Der Operator enthält keine Sicherheitsinformationen und definiert auch nicht den Sicherheitsprinzipal.An operator does not contain security information, and does not define a security principal.

SQL ServerSQL Server kann Operatoren bei Warnungen folgendermaßen benachrichtigen: can notify operators of alerts through one or more of the following:

  • E-MailE-mail

  • Pager (per E-Mail)Pager (through e-mail)

  • net sendnet send

Hinweis

Um Benachrichtigungen mit NET SENDzu senden, muss der Windows Messenger-Dienst auf dem Computer mit dem SQL ServerSQL Server -Agent gestartet sein.To send notifications by using net send, the Windows Messenger service must be started on the computer where SQL ServerSQL Server Agent resides.

Wichtig

Die Pager- und NET SEND -Optionen werden in zukünftigen Versionen von SQL ServerSQL Server nicht mehr im SQL ServerSQL Server-Agent vorhanden sein.The Pager and net send options will be removed from SQL ServerSQL Server Agent in a future version of SQL ServerSQL Server. Vermeiden Sie die Verwendung dieser Funktionen bei neuen Entwicklungsarbeiten, und planen Sie die Änderung von Anwendungen, die diese Funktionen zurzeit verwenden.Avoid using these features in new development work, and plan to modify applications that currently use these features.

Um Operatoren Benachrichtigungen per E-Mail oder Pager zu senden, müssen Sie den SQL ServerSQL Server -Agent so konfigurieren, dass Datenbank-E-Mail verwendet wird.To send notifications to operators by using e-mail or pagers, you must configure SQL ServerSQL Server Agent to use Database Mail. Weitere Informationen finden Sie unter Database Mail.For more information, see Database Mail.

Ein Operator kann auch als Alias für eine Gruppe von Personen definiert werden.You can define an operator as the alias for a group of individuals. Auf diese Weise werden alle Mitglieder dieses Alias zur selben Zeit benachrichtigt.In this way, all members of that alias are notified at the same time. Weitere Informationen finden Sie unter Operatoren.For more information, see Operators.

Sicherheit für die Administration mit dem SQL Server-AgentSecurity for SQL Server Agent Administration

SQL ServerSQL Server -Agent verwendet die festen Datenbankrollen SQLAgentUserRole, SQLAgentReaderRoleund SQLAgentOperatorRole in der msdb -Datenbank, um den Zugriff auf den SQL ServerSQL Server -Agent für Benutzer zu steuern, die keine Mitglieder der festen Serverrolle sysadmin sind. Agent for users who are not members of the sysadmin fixed server role. Neben diesen festen Datenbankrollen können Datenbankadministratoren mithilfe von Subsystemen und Proxys sicherstellen, dass jeder Auftragsschritt mit den mindestens erforderlichen Berechtigungen ausgeführt wird.In addition to these fixed database roles, subsystems and proxies help database administrators ensure that each job step runs with the minimum permissions required to perform its task.

RollenRoles

Mitglieder der festen Datenbankrollen SQLAgentUserRole, SQLAgentReaderRoleund SQLAgentOperatorRole in msdbund Mitglieder der festen Serverrolle sysadmin haben Zugriff auf den SQL ServerSQL Server -Agent.Members of the SQLAgentUserRole, SQLAgentReaderRole, and SQLAgentOperatorRole fixed database roles in msdb, and members of the sysadmin fixed server role have access to SQL ServerSQL Server Agent. Ein Benutzer, der keiner dieser Rollen angehört, kann den SQL ServerSQL Server -Agent nicht verwenden.A user that does not belong to any of these roles cannot use SQL ServerSQL Server Agent. Weitere Informationen zu den Rollen, die vom SQL ServerSQL Server -Agent verwendet werden, finden Sie unter Implementieren der SQL Server-Agent-Sicherheit.For more information on the roles used by SQL ServerSQL Server Agent, see Implement SQL Server Agent Security.

SubsystemeSubsystems

Ein Subsystem ist ein vordefiniertes Objekt, das die für einen Auftragsschritt verfügbare Funktionalität darstellt.A subsystem is a predefined object that represents functionality that is available to a job step. Jeder Proxy hat Zugriff auf mindestens ein Subsystem.Each proxy has access to one or more subsystems. Subsysteme bieten Sicherheit, weil sie den Zugriff auf die für ein Proxykonto verfügbare Funktionalität begrenzen.Subsystems provide security because they delimit access to the functionality that is available to a proxy. Jeder Auftragsschritt wird im Kontext eines Proxys ausgeführt, mit Ausnahme von Transact-SQLTransact-SQL -Auftragsschritten.Each job step runs in the context of a proxy, except for Transact-SQLTransact-SQL job steps. Transact-SQLTransact-SQL -Auftragsschritten wird der Sicherheitskontext mithilfe des EXECUTE AS-Befehls festgelegt. job steps use the EXECUTE AS command to set the security context.

SQL ServerSQL Server definiert die in der folgenden Tabelle aufgeführten Subsysteme: defines the subsystems listed in the following table:

Name des SubsystemsSubsystem name DescriptionDescription
Microsoft ActiveX-SkriptMicrosoft ActiveX Script Ausführen eines ActiveX-Skript-Auftragsschritts.Run an ActiveX scripting job step.

Warning Das ActiveX Scripting-Subsystem wird in einer zukünftigen Version von MicrosoftMicrosoft SQL ServerSQL Server von SQL ServerSQL Server-Agent entfernt.Warning The ActiveX Scripting subsystem will be removed from SQL ServerSQL Server Agent in a future version of MicrosoftMicrosoft SQL ServerSQL Server. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
Betriebssystem (CmdExec)Operating System (CmdExec) Ausführen eines ausführbaren Programms.Run an executable program.
PowerShellPowerShell Ausführen eines PowerShell-Skripterstellungs-Auftragsschritts.Run a PowerShell scripting job step.
ReplikationsverteilerReplication Distributor Ausführen eines Auftragsschritts, der den Replikationsverteilungs-Agent aktiviert.Run a job step that activates the replication Distribution Agent.
ReplikationsmergeReplication Merge Ausführen eines Auftragsschritts, der den Replikationsmerge-Agent aktiviert.Run a job step that activates the replication Merge Agent.
Replikation-WarteschlangenleserReplication Queue Reader Ausführen eines Auftragsschritts, der den Warteschlangenlese-Agent der Microsoft SQL Server-Replikation aktiviert.Run a job step that activates the replication Queue Reader Agent.
ReplikationsmomentaufnahmeReplication Snapshot Ausführen eines Auftragsschritts, der den Replikationsmomentaufnahme-Agent aktiviert.Run a job step that activates the replication Snapshot Agent.
Replikationstransaktionsprotokoll-LeserReplication Transaction Log Reader Ausführen eines Auftragsschritts, der den Protokolllese-Agent aktiviert.Run a job step that activates the replication Log Reader Agent.
Analysis ServicesAnalysis Services -Befehl Command Ausführen eines Analysis ServicesAnalysis Services -Befehls.Run an Analysis ServicesAnalysis Services command.
Analysis ServicesAnalysis Services -Abfrage Query Ausführen einer Analysis ServicesAnalysis Services -Abfrage.Run an Analysis ServicesAnalysis Services query.
SSISSSIS -Paketausführung package execution Ausführen eines SSISSSIS -Pakets.Run an SSISSSIS package.
Hinweis

Da Transact-SQLTransact-SQL -Auftragsschritte keine Proxys verwenden, gibt es kein Subsystem des SQL ServerSQL Server -Agents für Transact-SQLTransact-SQL -Auftragsschritte.Because Transact-SQLTransact-SQL job steps do not use proxies, there is no SQL ServerSQL Server Agent subsystem for Transact-SQLTransact-SQL job steps.

SQL ServerSQL 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. Agent enforces subsystem restrictions even when the security principal for the proxy would normally have permission to run the task in the job step. Beispielsweise kann ein Proxykonto für einen Benutzer, der Mitglied der festen Serverrolle „sysadmin“ ist, nur einen SSISSSIS -Auftragsschritt ausführen, wenn das Proxykonto Zugriff auf das SSISSSIS -Subsystem hat. Der Benutzer kann jedoch SSISSSIS -Pakete ausführen.For example, a proxy for a user that is a member of the sysadmin fixed server role cannot run an SSISSSIS job step unless the proxy has access to the SSISSSIS subsystem, even though the user can run SSISSSIS packages.

ProxysProxies

SQL ServerSQL Server -Agent verwendet Proxys zum Verwalten von Sicherheitskontexten. Agent uses proxies to manage security contexts. Ein Proxy kann für mehrere Auftragsschritte verwendet werden.A proxy can be used in more than one job step. Mitglieder der festen Serverrolle sysadmin können Proxys erstellen.Members of the sysadmin fixed server role can create proxies.

Jeder Proxy entspricht Sicherheitsanmeldeinformationen.Each proxy corresponds to a security credential. Jeder Proxy kann einer Gruppe von Subsystemen und Anmeldenamen zugeordnet werden.Each proxy can be associated with a set of subsystems and a set of logins. Der Proxy kann nur für Auftragsschritte benutzt werden, die ein dem Proxy zugeordnetes Subsystem verwenden.The proxy can be used only for job steps that use a subsystem associated with the proxy. 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.To create a job step that uses a specific proxy, the job owner must either use a login associated with that proxy or be a member of a role with unrestricted access to proxies. Mitglieder der festen Serverrolle sysadmin haben unbeschränkten Zugriff auf Proxys.Members of the sysadmin fixed server role have unrestricted access to proxies. Mitglieder von SQLAgentUserRole, SQLAgentReaderRoleoder SQLAgentOperatorRole können nur Proxys verwenden, für die Ihnen der Zugriff erteilt wurde.Members of SQLAgentUserRole, SQLAgentReaderRole, or SQLAgentOperatorRole can only use proxies to which they have been granted specific access. Jedem Benutzer, der Mitglied einer dieser festen Datenbankrollen des SQL ServerSQL Server -Agents ist, muss Zugriff auf bestimmte Proxys gewährt werden, damit er Auftragsschritte erstellen kann, bei denen diese Proxys verwendet werden.Each user that is a member of any of these SQL ServerSQL Server Agent fixed database roles must be granted access to specific proxies so that the user can create job steps that use those proxies.

Verwandte AufgabenRelated Tasks

Konfigurieren Sie den SQL ServerSQL Server -Agent anhand der folgenden Schritte zur Automatisierung der SQL ServerSQL Server -Verwaltung:Use the following steps to configure SQL ServerSQL Server Agent to automate SQL ServerSQL Server administration:

  1. Überprüfen Sie, welche administrativen Tasks oder Serverereignisse regelmäßig auftreten und ob diese Tasks oder Ereignisse programmgesteuert verwaltet werden können.Establish which administrative tasks or server events occur regularly and whether these tasks or events can be administered programmatically. 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.A task is a good candidate for automation if it involves a predictable sequence of steps and occurs at a specific time or in response to a specific event.

  2. Definieren Sie die Aufträge, Zeitpläne, Warnungen und Operatoren mithilfe von SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL -Skripts oder SQL ServerSQL Server Management Objects (SMO).Define a set of jobs, schedules, alerts, and operators by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL scripts, or SQL ServerSQL Server Management Objects (SMO). Weitere Informationen finden Sie unter Erstellen von Aufträgen.For more information, see Create Jobs.

  3. Führen Sie die SQL ServerSQL Server -Agent-Aufträge aus, die Sie definiert haben.Run the SQL ServerSQL Server Agent jobs you have defined.

Hinweis

Für die Standardinstanz von SQL ServerSQL Servererhält der SQL ServerSQL Server -Dienst den Namen SQLSERVERAGENT.For the default instance of SQL ServerSQL Server, the SQL ServerSQL Server service is named SQLSERVERAGENT. Für benannte Instanzen erhält der SQL ServerSQL Server -Agent-Dienst den Namen SQLAgent$instancename.For named instances, the SQL ServerSQL Server Agent service is named SQLAgent$instancename.

Falls Sie mehrere Instanzen von SQL ServerSQL Serverausführen, können Sie Tasks, die auf allen Instanzen ausgeführt werden müssen, mithilfe der Multiserververwaltung automatisieren.If you are running multiple instances of SQL ServerSQL Server, you can use multiserver administration to automate tasks common across all instances. Weitere Informationen finden Sie unter Automatisierte Verwaltung in einem Unternehmen.For more information, see Automated Administration Across an Enterprise.

Verwenden Sie für die ersten Schritte mit dem SQL ServerSQL Server -Agent die folgenden Aufgaben:Use the following tasks to get started with SQL ServerSQL Server Agent:

DescriptionDescription ThemaTopic
Beschreibt, wie SQL Server-Agent konfiguriert wird.Describes how to configure SQL Server Agent. Konfigurieren des SQL Server-AgentsConfigure SQL Server Agent
Beschreibt, wie der SQL Server-Agent-Dienst gestartet, beendet und angehalten wird.Describes how to start, stop, and pause the SQL Server Agent service. Starten, Beenden oder Anhalten des SQL Server-Agent-DienstesStart, Stop, or Pause the SQL Server Agent Service
Beschreibt Überlegungen zum Angeben eines Kontos für den SQL Server-Agent-Dienst.Describes considerations for specifying an account for the SQL Server Agent service. Auswählen eines Kontos für den SQL Server-Agent-DienstSelect an Account for the SQL Server Agent Service
Beschreibt, wie das SQL Server-Agent-Fehlerprotokoll verwendet wird.Describes how to use the SQL Server Agent error log. SQL Server-Agent-FehlerprotokollSQL Server Agent Error Log
Beschreibt, wie Leistungsobjekte verwendet werden.Describes how to use performance objects. Verwenden von LeistungsobjektenUse Performance Objects
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.Describes the Maintenance Plan Wizard, which is a utility that you can use to help create jobs, alerts, and operators to automate administration of an instance of SQL Server. Verwenden des Wartungsplanungs-AssistentenUse the Maintenance Plan Wizard
Beschreibt, wie administrative Aufgaben mit dem SQL Server-Agent automatisiert werden.Describes how to automate administrative tasks using SQL Server Agent. Automatisierte Administrationstasks (SQL Server Agent)Automated Administration Tasks (SQL Server Agent)

Siehe auchSee Also

OberflächenkonfigurationSurface Area Configuration