Verwenden von SQL Server Agent - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von SQL Server Agent

Mit Amazon RDS können Sie SQL Server Agent in einer DB-Instance verwenden, in der Microsoft SQL Server Standard, Web Edition oder Enterprise Edition ausgeführt wird. SQL Server Agent ist ein Dienst von Microsoft Windows für die Ausführung geplanter administrativer Aufgaben, sogenannte Jobs. Sie können SQL Server Agent für die Ausführung von T-SQL-Jobs für den erneuten Aufbau von Indizes, die Ausführung von Beschädigungsprüfungen und für die Zusammenfassung von Daten in einer SQL Server-DB-Instance verwenden.

SQL Server Agent kann einen Job nach Plan, als Antwort auf ein bestimmtes Ereignis oder auf Abruf ausführen. Weitere Informationen finden Sie unter SQL Server Agent in der SQL Server-Dokumentation. Sie sollten Job-Ausführungen während der Wartungs- und Backup-Zeiträume Ihrer DB-Instance vermeiden, da diese von AWS gestarteten Wartungs- und Backup-Vorgänge den Job unterbrechen oder dessen Abbruch verursachen könnten. Da Amazon RDS Ihre DB-Instance sichert, darf SQL Server Agent für die Erstellung von Backups nicht verwendet werden.

Um den Verlauf eines einzelnen SQL Server Agent-Auftrags in SQL Server Management Studio anzuzeigen, öffnen Sie den Objektexplorer, klicken mit der rechten Maustaste auf den Auftrag und klicken dann auf View History (Verlauf ansehen).

Da SQL Server Agent auf einem verwalteten Host einer DB-Instance ausgeführt wird, gibt es einige Aktionen, die nicht unterstützt werden. Die Ausführung von Replikationsjobs und die Ausführung der Befehlszeilen-Skripts mithilfe von ActiveX, Windows Command-Shell oder Windows PowerShell werden nicht unterstützt. Darüber hinaus kann SQL Server Agent nicht manuell gestartet, angehalten oder neu gestartet werden, da dessen Operation vom Host verwaltet werden. E-Mail-Benachrichtigungen über SQL Server Agent sind von einer DB-Instance aus nicht verfügbar.

Wenn Sie eine SQL Server-DB-Instance erstellen, wird der Master User Name mit der Rolle SQLAgentUserRole registriert. Damit ein(e) zusätzliche(r) Anmeldung/Benutzer SQL Server Agent verwenden kann, müssen Sie sich als Master User anmelden und gehen wie folgt vor.

  1. Erstellen Sie mithilfe des Befehls CREATE LOGIN eine weitere Anmeldung auf Serverebene.

  2. Erstellen Sie mithilfe des Befehls CREATE USER einen Benutzer und verknüpfen Sie dann diesen Benutzer mit der Anmeldung, die Sie im vorherigen Schritt erstellt haben.

  3. Fügen Sie den Benutzer mithilfe der gespeicherten Prozedur sp_addrolemember der SQLAgentUserRole hinzu.

Nehmen wir beispielsweise an, Ihr Masterbenutzername lautet admin, und Sie möchten einem Benutzer mit dem Namen theirname und dem Passwort theirpassword den Zugriff auf SQL Server Agent ermöglichen. Sie würden sich dann mit dem Master User Name anmelden und die folgenden Befehle ausführen.

--Initially set context to master database USE [master]; GO --Create a server-level login named theirname with password theirpassword CREATE LOGIN [theirname] WITH PASSWORD = 'theirpassword'; GO --Set context to msdb database USE [msdb]; GO --Create a database user named theirname and link it to server-level login theirname CREATE USER [theirname] FOR LOGIN [theirname]; GO --Added database user theirname in msdb to SQLAgentUserRole in msdb EXEC sp_addrolemember [SQLAgentUserRole], [theirname];

Führen Sie das folgende T-SQL-Statement aus, um einen SQL Server Agent-Job zu löschen.

EXEC msdb..sp_delete_job @job_name = 'job_name';
Anmerkung

Verwenden Sie für das Löschen eines SQL Server Agent-Auftrags nicht die Benutzeroberfläche in der SQL Server Management-Konsole (SSMS). Falls Sie dies machen, erhalten Sie eine Fehlermeldung ähnlich der folgenden:

The EXECUTE permission was denied on the object 'xp_regread', database 'mssqlsystemresource', schema 'sys'.

Dieser Fehler tritt auf, weil RDS als verwalteter Service von der Ausführung von Prozeduren ausgeschlossen ist, die auf die Windows-Registrierung zugreifen. Wenn Sie SSMS verwenden, um den Auftrag zu löschen, versucht es, einen Prozess (xp_regread) auszuführen, für den RDS nicht berechtigt ist.