Planen und Automatisieren von Sicherungen von SQL Server-Datenbanken in SQL Server Express

In diesem Artikel wird die Verwendung eines Transact-SQL-Skripts und der Windows-Aufgabenplanung zum Automatisieren von Sicherungen von SQL Server Express-Datenbanken auf geplanter Basis vorgestellt.

Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 2019698

Zusammenfassung

SQL Server Express-Editionen bieten keine Möglichkeit zum Planen von Aufträgen oder Wartungsplänen, da die SQL Server Agent-Komponente in diesen Editionen nicht enthalten ist. Daher müssen Sie einen anderen Ansatz zum Sichern Ihrer Datenbanken verwenden, wenn Sie diese Editionen verwenden.

Derzeit können SQL Server Express-Benutzende ihre Datenbanken mithilfe einer der folgenden Methoden sichern:

Verwenden Sie SQL Server Management Studio oder Azure Data Studio. Weitere Informationen dazu, wie Sie diese Tools zum Sichern einer Datenbank verwenden, erfahren Sie unter den folgenden Links:

In diesem Artikel wird beschrieben, wie Sie ein Transact-SQL-Skript zusammen mit der Windows-Aufgabenplanung verwenden, um Sicherungen von SQL Server Express-Datenbanken auf geplanter Basis zu automatisieren.

Hinweis

Dies gilt nur für SQL Server-Expresseditionen und nicht für SQL Server Express LocalDB.

Weitere Informationen

Sie müssen die folgenden vier Schritte ausführen, um Ihre SQL Server-Datenbanken mithilfe der Windows-Aufgabenplanung zu sichern:

Schritt A: Erstellen Sie eine gespeicherte Prozedur zum Sichern Ihrer Datenbanken.

Stellen Sie eine Verbindung mit Ihrer SQL Express-Instanz her, und erstellen Sie in Ihrer Masterdatenbank eine gespeicherte Prozedur sp_BackupDatabases mithilfe des Skripts am folgenden Speicherort:

SQL_Express_Backups

Schritt B: SQLCMD-Tool herunterladen (falls zutreffend).

Mit dem sqlcmd-Dienstprogramm können Sie Transact-SQL-Anweisungen, Systemprozeduren und Skriptdateien eingeben. In SQL Server 2014 und niedrigeren Versionen wird das Dienstprogramm als Teil des Produkts ausgeliefert. Ab SQL Server 2016 wird das Dienstprogramm sqlcmd als separater Download angeboten. Weitere Informationen hierzu erfahren Sie unter sqlcmd-Dienstprogramm.

Schritt C: Erstellen einer Batchdatei mithilfe eines Text-Editors.

Erstellen Sie in einem Text-Editor eine Batchdatei mit dem Namen Sqlbackup.bat, und kopieren Sie dann je nach Szenario den Text aus einem der folgenden Beispiele in diese Datei:

  • In allen folgenden Szenarien wird D:\SQLBackups als Platzhalter verwendet. Das Skript muss an den richtigen Speicherort des Laufwerks und des Sicherungsordners in Ihrer Umgebung angepasst werden.

  • Wenn Sie die SQL-Authentifizierung verwenden, stellen Sie sicher, dass der Zugriff auf den Ordner auf autorisierte Benutzende beschränkt ist, da die Kennwörter in Klartext gespeichert werden.

Hinweis

Der Ordner für die ausführbare Datei SQLCMD befindet sich in der Regel in den Pfadvariablen für den Server, nachdem SQL Server installiert wurde oder nachdem Sie ihn als eigenständiges Tool installiert haben. Wenn die Pfadvariable diesen Ordner jedoch nicht auflistet, können Sie entweder den Speicherort der Pfadvariablen hinzufügen oder den vollständigen Pfad zum Hilfsprogramm angeben.

Beispiel 1: Vollständige Sicherungen aller Datenbanken in der lokalen benannten Instanz von SQLEXPRESS mithilfe der Windows-Authentifizierung.

 // Sqlbackup.bat
 sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @backupType='F'"

Beispiel 2: Differenzielle Sicherungen aller Datenbanken in der lokalen benannten Instanz von SQLEXPRESS mithilfe eines SQL-Logins und seines Kennworts.

 // Sqlbackup.bat
sqlcmd -U <YourSQLLogin> -P <StrongPassword> -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases  @backupLocation ='D:\SQLBackups', @BackupType='D'"

Hinweis

Das SQL-Login sollte mindestens über die Rolle des Sicherungsoperators in SQL Server verfügen.

Beispiel 3: Protokollieren von Sicherungen aller Datenbanken in der lokalen benannten Instanz von SQLEXPRESS mithilfe der Windows-Authentifizierung

 // Sqlbackup.bat
 sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\',@backupType='L'"

Beispiel 4: Vollständige Sicherungen der Datenbank USERDB in der lokalen benannten Instanz von SQLEXPRESS mithilfe der Windows-Authentifizierung

 // Sqlbackup.bat
 sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName='USERDB', @backupType='F'"

In ähnlicher Weise können Sie eine differenzielle Sicherung von USERDB erstellen, indem Sie 'D' für den Parameter @backupType einfügen, und eine Protokollsicherung von USERDB, indem Sie 'L' für den Parameter @backupType einfügen.

Schritt D: Planen Sie einen Auftrag mithilfe der Windows-Aufgabenplanung, um die Batchdatei auszuführen, die Sie in Schritt B erstellt haben. Führen Sie dazu die folgenden Schritte aus:

  1. Klicken Sie auf dem Computer, auf dem SQL Server Express ausgeführt wird, auf Start, und geben Sie dann in das Textfeld Taskplaner ein.

    Screenshot der App-Option „Aufgabenplanung Desktop“ in der Suchleiste des Startmenüs.

  2. Klicken Sie unter Beste Übereinstimmung auf Aufgabenplaner, um ihn zu starten.

  3. Klicken Sie im Aufgabenplaner mit der rechten Maustaste auf Aufgabenplan-Bibliothek und klicken Sie auf Grundaufgabe erstellen....

  4. Geben Sie den Namen für die neue Aufgabe ein (z. B. SQLBackup), und klicken Sie auf Weiter.

  5. Wählen Sie Täglich für den Aufgabenauslöser und klicken Sie auf Weiter.

  6. Setzen Sie die Wiederholung auf einen Tag und klicken Sie auf Weiter.

  7. Wählen Sie Programm starten als Aktion und klicken Sie auf Weiter.

  8. Klicken Sie auf Durchsuchen, suchen Sie nach der in Schritt C erstellten Batchdatei, und klicken Sie dann auf Öffnen.

  9. Aktivieren Sie das Kontrollkästchen „Beim Klicken auf Fertig stellen, die Eigenschaften für diese Aufgabe öffnen“

  10. Überprüfen Sie auf der Registerkarte „Allgemein“

    1. Überprüfen Sie die Sicherheitsoptionen und achten Sie beim Benutzerkonto, das die Aufgabe ausführt, auf Folgendes (aufgeführt unter „Wenn Sie die Aufgabe ausführen, verwenden Sie das folgende Benutzerkonto“:)

      Das Konto sollte mindestens über die Berechtigungen Lesen und Ausführen verfügen, um das Dienstprogramm sqlcmd zu starten. Außerdem

      • sollten Sie, wenn Sie Windows-Authentifizierung in der Batchdatei verwenden, sicherstellen, dass der Besitzer der Aufgabenberechtigungen SQL-Sicherungen ausführen kann.

      • Bei Verwendung der SQL-Authentifizierung in der Batchdatei sollte der SQL-Benutzer über die erforderlichen Berechtigungen zum Ausführen von SQL-Sicherungen verfügen.

    2. Passen Sie andere Einstellungen an Ihre Anforderungen an.

Tipp

Führen Sie als Test die Batchdatei aus Schritt C an einer Eingabeaufforderung aus, die mit demselben Benutzerkonto gestartet wird, das die Aufgabe besitzt.

Beachten Sie Folgendes, wenn Sie das in diesem Artikel dokumentierte Verfahren verwenden:

  • Der Aufgabenplanungsdienst muss zu dem Zeitpunkt, zu dem die Ausführung des Auftrags geplant ist, ausgeführt werden. Wir empfehlen Ihnen, den Starttyp für diesen Dienst auf Automatisch einzustellen. Dadurch wird sichergestellt, dass der Dienst auch bei einem Neustart ausgeführt wird.

  • Auf dem Laufwerk, auf das die Sicherungen geschrieben werden, sollte viel Speicherplatz vorhanden sein. Wir empfehlen, die alten Dateien im Backup-Ordner regelmäßig zu löschen, um sicherzustellen, dass der Speicherplatz nicht knapp wird. Das Skript enthält nicht die Logik zum Bereinigen alter Dateien.

Weitere Verweise

Übersicht über die Aufgabenplanung