Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server unter Linux
SQL Server-Aufträge werden verwendet, um regelmäßig dieselbe Befehlssequenz in Ihrer SQL Server-Datenbank auszuführen. Dieses Tutorial enthält ein Beispiel für das Erstellen eines SQL Server-Agent-Auftrags unter Linux mithilfe von Transact-SQL und SQL Server Management Studio (SSMS).
- Installieren des SQL Server-Agent unter Linux
- Erstellen eines neuen Auftrags zum Ausführen täglicher Datenbanksicherungen
- Planen und Ausführen des Auftrags
- Ausführen der gleichen Schritte in SSMS (optional)
Bekannte Probleme mit SQL Server-Agent unter Linux finden Sie unter SQL Server unter Linux: Bekannte Probleme.
Voraussetzungen
Zur Durchführung dieses Tutorials ist Folgendes erforderlich:
Ein Linux-Computer, der folgende Voraussetzungen erfüllt:
- Schnellstart: Installieren von SQL Server und Erstellen einer Datenbank unter Red Hat
- Schnellstart: Installieren von SQL Server und Erstellen einer Datenbank unter SUSE Linux Enterprise Server
- Schnellstart: Installieren von SQL Server und Erstellen einer Datenbank unter Ubuntu mit den Befehlszeilentools.
Die folgenden Voraussetzungen sind optional:
- Windows-Computer mit SSMS:
- Installieren Sie SQL Server Management Studio für optionale SSMS-Schritte.
Aktivieren des SQL Server-Agents.
Um den SQL Server-Agent unter Linux verwenden zu können, müssen Sie den SQL Server-Agent zuerst auf einem Computer aktivieren, auf dem bereits SQL Server installiert ist.
Führen Sie zum Aktivieren des SQL Server-Agents den folgenden Befehl aus.
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled trueStarten Sie SQL Server mithilfe des folgenden Befehls neu:
sudo systemctl restart mssql-server
Hinweis
Ab SQL Server 2017 (14.x) CU 4 ist der SQL Server-Agent im mssql-server-Paket enthalten und standardmäßig deaktiviert. Informationen zum Einrichten des Agents vor CU 4 finden Sie unter Installieren des SQL Server-Agents unter Linux.
Erstellen einer Beispieldatenbank
Führen Sie die folgenden Schritte aus, um eine Beispieldatenbank mit dem Namen SampleDB zu erstellen. Diese Datenbank wird für den täglichen Sicherungsauftrag verwendet.
Öffnen Sie auf Ihrem Linux-Computer eine Bash-Terminalsitzung.
Verwenden Sie sqlcmd zum Ausführen von Transact-SQL
CREATE DATABASE-Befehlen./opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'Überprüfen Sie, ob die Datenbank erstellt wurde, indem Sie die Datenbanken auf dem Server auflisten.
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
Erstellen eines Auftrags mit Transact-SQL
Mit den folgenden Schritten erstellen Sie einen SQL Server-Agent-Auftrag unter Linux mit Transact-SQL-Befehlen. Der Auftrag führt eine tägliche Sicherung der Beispieldatenbank SampleDB aus.
Tipp
Sie können einen beliebigen T-SQL-Client verwenden, um diese Befehle auszuführen. Beispielsweise können Sie unter Linux die Befehlszeilentools "sqlcmd" und "bcp SQL Server" unter Linux oder sql Server-Erweiterung für Visual Studio Code installieren. Von einem Remote-Windows-Server aus können Sie auch Abfragen in SQL Server Management Studio (SSMS) ausführen oder die Benutzeroberflächen-Schnittstelle für die Auftragsverwaltung verwenden, die im nächsten Abschnitt beschrieben wird.
Führen Sie sp_add_job aus, um einen Auftrag namens
Daily SampleDB Backupzu erstellen.-- Adds a new job executed by the SQLServerAgent service -- called 'Daily SampleDB Backup' USE msdb; GO EXECUTE dbo.sp_add_job @job_name = N'Daily SampleDB Backup'; GORufen Sie sp_add_jobstep auf, um einen Auftragsschritt zu erstellen, der eine Sicherung der
SampleDB-Datenbank erstellt.EXECUTE sp_add_jobstep @job_name = N'Daily SampleDB Backup', @step_name = N'Backup database', @subsystem = N'TSQL', @command = N'BACKUP DATABASE SampleDB TO DISK = \ N''/var/opt/mssql/data/SampleDB.bak'' WITH NOFORMAT, NOINIT, \ NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10', @retry_attempts = 5, @retry_interval = 5; GOErstellen Sie dann mit sp_add_schedule einen täglichen Zeitplan für Ihren Auftrag.
-- Creates a schedule called 'Daily' EXECUTE dbo.sp_add_schedule @schedule_name = N'Daily SampleDB', @freq_type = 4, @freq_interval = 1, @active_start_time = 233000; USE msdb; GOFügen Sie mit sp_attach_schedule den Auftragszeitplan dem Auftrag an.
-- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job EXECUTE sp_attach_schedule @job_name = N'Daily SampleDB Backup', @schedule_name = N'Daily SampleDB'; GOVerwenden Sie sp_add_jobserver, um den Auftrag einem Zielserver zuzuweisen. In diesem Beispiel ist das Ziel der lokale Server.
EXECUTE dbo.sp_add_jobserver @job_name = N'Daily SampleDB Backup', @server_name = N'(local)'; GOStarten Sie den Auftrag mit sp_start_job.
EXECUTE dbo.sp_start_job N' Daily SampleDB Backup'; GO
Erstellen eines Jobs mit SSMS
Sie können Aufträge mithilfe von SQL Server Management Studio (SSMS) auch remote unter Windows erstellen und verwalten.
Starten Sie SSMS unter Windows, und stellen Sie eine Verbindung mit Ihrer Linux-SQL Server-Instanz her. Weitere Informationen finden Sie unter Verwenden von SQL Server Management Studio unter Windows zum Verwalten von SQL Server für Linux.
Bestätigen Sie, dass Sie eine Beispieldatenbank mit dem Namen
SampleDBerstellt haben.Bestätigen Sie, dass der SQL Server-Agent unter Linux installiert und ordnungsgemäß konfiguriert wurde. Suchen Sie im Objekt-Explorer das Pluszeichen neben SQL Server-Agent. Wenn SQL Server-Agent nicht aktiviert ist, versuchen Sie, den mssql-server-Dienst unter Linux neu zu starten.
Erstellen Sie eine neue Stelle.
Geben Sie Ihrem Auftrag einen Namen, und erstellen Sie den Auftragsschritt.
Geben Sie an, welches Subsystem Sie verwenden möchten, und was der Auftragsschritt ausführen soll.
Erstellen Sie einen neuen Auftragszeitplan.
Starten Sie Ihren Job.
Nächster Schritt
In diesem Tutorial haben Sie Folgendes gelernt:
- Installieren des SQL Server-Agent unter Linux
- Verwenden von Transact-SQL und gespeicherten Systemprozeduren zum Erstellen von Aufträgen
- Erstellen eines Auftrags, der tägliche Datenbanksicherungen ausführt
- Verwenden der SSMS-Benutzeroberfläche zum Erstellen und Verwalten von Aufträgen
Lernen Sie als nächstes weitere Möglichkeiten zum Erstellen und Verwalten von Aufträgen kennen: