Logo faq-o-matic.net
Logo faq-o-matic.net

SQL Server Express: Datensicherung über Powershell

von veröffentlicht am9. Januar 2017, 06:49 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Datensicherung, PowerShell, SQL Server   Translate with Google Translate Translate EN   Die angezeigte Seite drucken
Zuletzt aktualisiert: 18. Dezember 2017

Die SQL Express Edition erfreut sich gerade für kleine Anwendungen großer Beliebtheit, da sie keine Lizenzkosten verursacht. Diese Beliebtheit dürfte sogar noch steigen seit dem Microsoft mit dem Service Pack 1 für den SQL Server 2016 viele Funktionen der Standard und sogar Enterprise Edition nun auch in der Express Edition verfügbar macht. Nun stehen hier auch viele der In-Memory Features und Sicherheitsfunktionen wie AlwaysEncrypted auch in der Express Edition bereit. Informationen zu allen Neuerungen in der Express Edition findet man in der offiziellen Ankündigung unter https://blogs.msdn.microsoft.com/sqlreleaseservices/sql-server-2016-service-pack-1-sp1-released/

Der Agent

Etwas, was aber weiterhin nur eingeschränkt enthalten ist, ist der SQL Server Agent. Dadurch muss man sich Alternativen überlegen, wie man zeitgesteuerte Aufgaben abbilden kann. Dieser Umstand wird gerade für die Sicherungen der Datenbank zum Problem. Mit den Bordmitteln des SQL Server Express gibt es erstmal keine Möglichkeit seine Datenbanken automatisch zu sichern.

Bei der Suche im Internet findet man häufig die Vorgehensweise die Datenbank Datei direkt zu sichern indem man die mdf-Datei kopiert. Der Nachteil an dieser Methode ist aber, dass der SQL Server Dienst für den Zeitraum der Sicherung nicht laufen darf, da sonst die Datei(en) noch im Zugriff sind. Ein weiterer Nachteil ist zudem, dass man die Datenbank nur im Wiederherstellungsmodel „Einfach“ betreiben kann da eine Log Sicherung und damit das leeren des Transaktionslogs nicht möglich ist.

Alternative Powershell

Microsoft stellt aber mit der Powershell eine einfache Möglichkeit bereit wie man auch in der Express Edition seine Datenbanken sichern kann.

Hierfür braucht man lediglich ein kleines Powershell-Skript und den Aufgabenplaner von Windows, und fertig ist die Sicherungslösung. Hier habe ich ein Beispiel für ein solches Sicherungsskript erstellt.

Update Dezember 2017: Das Skript findet sich ab sofort in der TechNet Gallery:

[Sicherung von SQL Express Datenbanken über Powershell]
https://gallery.technet.microsoft.com/Sicherung-von-SQL-Express-6414b172

Aufgabe erstellen

Im Windows-Aufgabenplaner erstellt man nun eine neue Aufgabe für die Sicherung. Im Reiter „Aktionen“ wählt man „Programm starten“ aus und wählt als Programm die Powershell.exe aus. Diese findet man im typischerweise in folgendem Verzeichnis:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

Bei „Argumente hinzufügen“ gibt man nun den Pfad und den Namen des Powershell-Skriptes an, welches ausgeführt werden soll.

clip_image002

Fertig ist die Sicherung der SQL Server Datenbanken.

Es ist natürlich auch möglich, in derselben Aufgabe mehrere Aktionen zu planen. Hierdurch kann man in einer Aktion die tägliche/wöchentliche Vollsicherung aller Datenbanken planen und in einer anderen Aktion die stündliche Transaktionslog-Sicherung für eine bestimmte Datenbank.

Hinweis

Die Skripte sind mit der Powershell 5 auf Windows Server 2012 R2 und 2016 mit SQL Express 2014 getestet.

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!