Planen und Automatisieren von Sicherungen von SQL Server-Datenbanken in SQL Server Express
In diesem Artikel wird erläutert, wie Sie ein Transact-SQL-Skript und einen Windows Task Scheduler verwenden, um Sicherungen von SQL Server Express-Datenbanken auf geplanter Basis zu automatisieren.
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 nicht in diesen Editionen enthalten ist. Daher müssen Sie beim Verwenden dieser Editionen einen anderen Ansatz zum Sichern Ihrer Datenbanken ergreifen.
Derzeit können SQL Server Express-Benutzer ihre Datenbanken mithilfe einer der folgenden Methoden sichern:
Verwenden Sie SQL Server Management Studio oder Azure Data Studio. Weitere Informationen zur Verwendung dieser Tools zum Sichern einer Datenbank in den folgenden Links:
Lernprogramm: Sichern und Wiederherstellen von Datenbanken mit Azure Data Studio
Verwenden Sie ein Transact-SQL-Skript, das die SICHERUNGSDATENBANKfamilie von Befehlen verwendet. Weitere Informationen finden Sie unter BACKUP (Transact-SQL).
In diesem Artikel wird beschrieben, wie Sie ein Transact-SQL-Skript zusammen mit Task Scheduler verwenden, um Sicherungen von SQL Server Express-Datenbanken auf geplanter Basis zu automatisieren.
Notiz
Dies gilt nur für SQL Server Express-Editionen und nicht für SQL Server Express LocalDB.
Weitere Informationen
Sie müssen diese vier Schritte ausführen, um Ihre SQL Server-Datenbanken mithilfe von Windows Task Scheduler zu sichern:
Schritt A: Erstellen sie gespeicherte Prozedur, um Ihre Datenbanken zu sichern.
Stellen Sie eine Verbindung mit Ihrer SQL Express-Instanz her, und erstellen Sie sp_BackupDatabases gespeicherte Prozedur in Ihrer Masterdatenbank mithilfe des Skripts am folgenden Speicherort:
Schritt B: Herunterladen des SQLCMD-Tools (falls zutreffend).
Mit dem sqlcmd
Hilfsprogramm können Sie Transact-SQL-Anweisungen, Systemprozeduren und Skriptdateien eingeben. In SQL Server 2014 und niedrigeren Versionen wird das Hilfsprogramm als Teil des Produkts ausgeliefert. Ab SQL Server 2016 sqlcmd
wird das Hilfsprogramm als separater Download angeboten. Weitere Informationen erhalten Sie unter "sqlcmd Utility".
Schritt C: Erstellen einer Batchdatei mithilfe des Text-Editors.
Erstellen Sie in einem Text-Editor eine Batchdatei mit dem Namen Sqlbackup.bat, und kopieren Sie dann den Text aus einem der folgenden Beispiele in diese Datei, je nach Ihrem Szenario:
Alle unten aufgeführten Szenarien werden als Platzhalter verwendet
D:\SQLBackups
. 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 Benutzer beschränkt ist, da die Kennwörter im Klartext gespeichert sind.
Notiz
Der Ordner für die SQLCMD
ausführbare Datei befindet sich in der Regel in den Pfadvariablen für den Server, nachdem SQL Server installiert wurde oder nachdem Sie sie als eigenständiges Tool installiert haben. Wenn die Pfadvariable diesen Ordner jedoch nicht auflistet, können Sie der Variablen "Path" entweder den Speicherort 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 SQLLogin und seines Kennworts.
// Sqlbackup.bat
sqlcmd -U <YourSQLLogin> -P <StrongPassword> -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases @backupLocation ='D:\SQLBackups', @BackupType='D'"
Notiz
SqlLogin sollte mindestens die Rolle des Sicherungsoperators in SQL Server haben.
Beispiel 3: Protokollieren von Sicherungen aller Datenbanken in der lokalen benannten SQLEXPRESS-Instanz 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'"
Ebenso können Sie eine differenzielle Sicherung von USERDB vornehmen, indem Sie in 'D' für den @backupType Parameter und eine Protokollsicherung von USERDB einfügen, indem Sie in 'L' für den @backupType Parameter einfügen.
Schritt D: Planen Sie einen Auftrag mithilfe von Windows Task Scheduler, um die Batchdatei auszuführen, die Sie in Schritt B erstellt haben. Führen Sie dazu die folgenden Schritte aus:
Klicken Sie auf dem Computer, auf dem SQL Server Express ausgeführt wird, auf "Start" und dann im Textfeld "Taskplaner" ein.
Klicken Sie unter "Optimale Übereinstimmung" auf " Vorgangsplaner ", um sie zu starten.
Klicken Sie in "Aufgabenplaner" mit der rechten Maustaste auf " Vorgangszeitplanbibliothek" , und klicken Sie auf " Einfache Aufgabe erstellen...".
Geben Sie den Namen für die neue Aufgabe ein (z. B. SQLBackup), und klicken Sie auf "Weiter".
Wählen Sie "Täglich " für den Tasktrigger aus, und klicken Sie auf "Weiter".
Legen Sie die Serie auf einen Tag fest, und klicken Sie auf "Weiter".
Wählen Sie "Programm starten" als Aktion aus, und klicken Sie auf "Weiter".
Klicken Sie auf "Durchsuchen", klicken Sie auf die Batchdatei, die Sie in Schritt C erstellt haben, und klicken Sie dann auf "Öffnen".
Aktivieren Sie das Kontrollkästchen "Eigenschaften" für diesen Vorgang öffnen, wenn ich auf "Fertig stellen" klicke.
Auf der Registerkarte "Allgemein"
Überprüfen Sie die Sicherheitsoptionen, und stellen Sie Folgendes für das Benutzerkonto sicher, das die Aufgabe ausführt (unter "Beim Ausführen der Aufgabe" aufgeführt, benutzer das folgende Benutzerkonto:)
Das Konto sollte mindestens über Lese- und Ausführungsberechtigungen verfügen, um das Sqlcmd-Hilfsprogramm zu starten. Darüber hinaus gilt:
Wenn Sie Windows-Authentifizierung in der Batchdatei verwenden, stellen Sie sicher, dass der Besitzer der Aufgabenberechtigungen SQL-Sicherungen ausführen kann.
Wenn Die SQL-Authentifizierung in der Batchdatei verwendet wird, sollte der SQL-Benutzer über die erforderlichen Berechtigungen zum Ausführen von SQL-Sicherungen verfügen.
Passen Sie andere Einstellungen entsprechend Ihren Anforderungen an.
Tipp
Führen Sie als Test die Batchdatei aus Schritt C über eine 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 Aufgabenplanerdienst muss zum Zeitpunkt der Ausführung des Auftrags ausgeführt werden. Es wird empfohlen, den Starttyp für diesen Dienst als automatisch festzulegen. Dadurch wird sichergestellt, dass der Dienst auch bei einem Neustart ausgeführt wird.
Auf dem Laufwerk sollte viel Speicherplatz vorhanden sein, in das die Sicherungen geschrieben werden. Es wird empfohlen, die alten Dateien im Sicherungsordner regelmäßig zu bereinigen, um sicherzustellen, dass nicht genügend Speicherplatz vorhanden ist. Das Skript enthält nicht die Logik zum Bereinigen alter Dateien.