Schritt-für-Schritt-Anleitung

SharePoint 2013 - Daten sichern und wiederherstellen

11.11.2014 von Thomas Joos
SharePoint 2013 bietet im Vergleich zu den Vorgängern mehr Möglichkeiten in Sachen Datensicherung. Der folgende Beitrag zeigt, wie Sie schnell und einfach SharePoint 2013 sichern und wiederherstellen können.

Prinzipiell haben Sie bei SharePoint Server 2013 die gleichen Möglichkeiten zum Sichern von Daten, Websites, Dokumenten und Einstellungen wie in SharePoint Server 2010. Neu hinzugekommen ist die Sicherung per PowerShell. Das ist vor allem in Zusammenarbeit mit Windows Server 2012 und SQL Server 2012 sehr effizient.

Auch eine Sicherung von SharePoint 2013 über Microsoft System Center Data Protection Manager 2012 ist möglich. In diesem Fall benötigen Sie aber das SP1 für DPM 2012. Nachfolgend liegt der Schwerpunkt zunächst auf der Datensicherung per PowerShell.

Natürlich können Sie in SharePoint 2013 auch weiterhin die Zentraladministration zum Sichern und Wiederherstellen der Daten nutzen. Dazu finden Sie nach dem Start der Zentraladministration den Bereich Sichern und Wiederherstellen.

PowerShell und Aufgabenplanung zur Sicherung nutzen

Wenn Sie ein PowerShell-Skript oder einzelne Befehle in der PowerShell zum Sichern von SharePoint-Farmen verwenden, können Sie diese auch in die Aufgabenplanung von Windows integrieren. Sie haben sogar die Möglichkeit, die Ausführung an Ereignisse in die Ereignisanzeige einzubinden. Die Skripte können Sie selbstverständlich auch manuell oder zeitgesteuert starten lassen.

Auf diese Weise lassen sich die gesicherten Daten zusätzlich mit einer herkömmlichen Sicherung speichern. Die Daten können ebenso in eine Netzfreigabe gesichert werden. Der wichtigste Befehl zur Sicherung von SharePoint Server 2012 ist das CMDlet Backup-SPFarm. Ein Beispiel dazu:

Backup-SPFarm -BackupMethod Full -Directory \\<Servername>\>Freigabe>

Wenn Sie SQL-Server und SharePoint auf dem gleichen Server installiert haben oder mit der eigenständigen Installation arbeiten, können Sie die Sicherung auch in einem lokalen Verzeichnis ablegen. Das Verzeichnis muss vorhanden sein. SharePoint legt aber automatisch Unterverzeichnisse an.

Neben vollständigen sind auch differenzielle Sicherungen möglich. Dazu verwenden Sie zum Beispiel:

Backup-SPFarm -BackupMethod Differential -Directory \<Servername>\<Freigabe>

Bei der ersten Sicherung der Farm müssen Sie die Option Full verwenden. Auf dieser vollständigen Sicherung können Sie dann differenzielle Sicherungen aufbauen, wobei Erstere den Letzteren vorausgeht. Die differenziellen Sicherungen lassen sich, wie eingangs, erwähnt, ebenso in der Zentraladministration ausführen.

Das Benutzerkonto, mit dem Sie die Aufgabe in Windows starten lassen, benötigt in der Domäne ganz normale Benutzerrechte und natürlich Lese- und Schreibrechte auf der Freigabe im Netzwerk, in der Sie die Farm mit der PowerShell sichern wollen.

Auf den SharePoint-Servern muss das Konto in die lokale Administratorgruppe und in die Gruppe der Farm-Administratoren integriert sein. Neben den Administratorrechten für die SharePoint-Farm muss das Konto das Recht haben, die SharePoint-Verwaltungsshell zu nutzen, sowie Zugriff auf die einzelnen Inhaltsdatenbanken erhalten. Dazu verwenden Sie den folgenden Befehl in der SharePoint-Verwaltungs-Shell:

Get-SPDatabase | Add-SPShellAdmin -UserName <Domäne>\<Backup-Benutzer>

Sie können sich für alle Datenbanken auch die Administratoren anzeigen lassen. Dazu verwenden Sie den Befehl

Get-SPDatabase | Get-SPShellAdmin.

Wenn Sie den freigegebenen Ordner nicht auf dem SQL-Server erstellen, müssen Sie sicherstellen, dass der Benutzername des Dienstkontos für SQL Server (MSSQLSERVER) über Vollzugriff auf den freigegebenen Ordner verfügt.

Sicherungsskripte erstellen

Weiterführend lassen sich Befehle zur Sicherung von SharePoint auch als Skript durchführen. Dazu schreiben Sie die Befehle zur Sicherung in eine Datei und speichern diese mit der Endung *.ps1. Es ist auch möglich, mehrere PS1-Dateien zu erstellen und mit einer Datei die SharePoint-Daten erst vollständig zu sichern und danach mit einem weiteren Skript differenziell. Ein Skript zur vollständigen Sicherung ist:

Add-PSSnapin "Microsoft.SharePoint.PowerShell"

Set-ExecutionPolicy -ExecutionPolicy "Unrestricted" -Force

Backup-SPFarm -BackupMethod Full -Directory \\<Servername>\<Freigabe>

Der erste Befehl lädt das Modul für SharePoint, dann wird die Ausführung von Skripten in der PowerShell erlaubt, und danach wird die Sicherung ausgeführt. Ein Skript zur differentiellen Sicherung:

Add-PSSnapin "Microsoft.SharePoint.PowerShell"

Set-ExecutionPolicy -ExecutionPolicy "Unrestricted" -Force

Backup-SPFarm -BackupMethod Differential-Directory \\<Servername>\<Freigabe>

Wenn Sie den Namen des Skriptes eingeben, führen Sie eine Sicherung in Echtzeit durch. Achten Sie aber darauf, dass Sie in der PowerShell bei Skripten immer noch ".\" voranstellen müssen, zum Beispiel .\dasi.ps1.

Sie sehen den aktuellen Status der Datensicherung im Verzeichnis der Datensicherung in dem Unterverzeichnis, welches das Skript zur Sicherung anlegt, zum Beispiel spbr0000. In diesem Verzeichnis liegen die Dateien der Sicherung und die Datei spbackup.log. In dieser finden Sie den aktuellen Status der Sicherung.

Aufgabe zur Sicherung erstellen

Sie können das Skript auch über die Aufgabenplanung starten, beispielsweise um ein Skript einmal in der Woche für eine volle Sicherung der Farm und ein Skript dann täglich für die differentielle Sicherung auszuführen. Die Erstellung der Aufgabe entspricht der normalen Vorgehensweise, wie bei allen Aufgaben.

Sobald ein Sicherungsjob in Windows startet, protokolliert Windows Server 2012 einen Eintrag in der Ereignisanzeige. Es gibt aber auch zahlreiche andere Ereignisse, die sinnvoll eingesetzt werden können. An diese Ereignisse lässt sich sehr leicht eine Aufgabe über die Aufgabenplanung anbinden. Die Aufgabe wiederum kann eine Batch-Datei oder ein PowerShell-Skript starten, in der Daten auf verschiedene Freigaben im Netzwerk repliziert und Rechner heruntergefahren werden. Die Einrichtung ist nicht allzu kompliziert und baut komplett auf Bordmittel von Windows Server 2012 und SharePoint Server 2013 auf.

Sie haben die Möglichkeit, über die Ereignisanzeige, zusammen mit der Aufgabenplanung in Windows Server 2012, weitere Aktionen durchführen zu lassen. Wollen Sie nach bestimmten Ereignissen in der Ereignisanzeige noch Batch-Dateien, PowerShell-CMDlets oder Befehle ausführen, können Sie die Funktion in Windows Server 2012 nutzen, mit der sich Aufgaben an bestimmte Ereignisse anhängen lassen.

Dazu klicken Sie mit der rechten Maustaste auf das Ereignis in der Ereignisanzeige und wählen Aufgabe an dieses Ereignis anfügen. Das heißt, Windows startet die Aufgabe immer genau dann, wenn das entsprechende Ereignis auftritt. Im folgenden Assistenten wählen Sie dann aus, welche Befehle Windows ausführen soll. Im ersten Fenster weisen Sie der Aufgabe einen Namen zu.

Im zweiten Fenster sehen Sie noch einmal das Ereignis, zu dem Windows die Aufgabe startet. Im dritten Fenster wählen Sie die Option Programm starten aus. Als Nächstes geben Sie den Befehl und die Optionen ein, die Windows ausführen soll.

PowerShell-Skripte in der PowerShell ausführen

Haben Sie das oben erwähnte Skript ausgewählt, aktivieren Sie am Ende des Assistenten noch die Option Beim Klicken auf "Fertig stellen", die Eigenschaften für diese Aufgabe öffnet. Schließen Sie die Erstellung der Aufgabe ab, dann können Sie diese noch an Ihre Bedürfnisse anpassen. Wenn Sie in der Aufgabenplanung ein PowerShell-Skript ausführen wollen, müssen Sie immer zuerst powershell.exe angeben, sodann die Option -file und schließlich den genauen Pfad zur PS1-Datei.

Sie können die Aufgabe aber auch ohne diese Option jederzeit anpassen. Dazu starten Sie durch Eintippen von "Aufgabe" auf der Startseite von Windows Server 2012 die Aufgabenplanung. Die Aufgabe finden Sie über Aufgabenplanungsbibliothek/Aufgaben der Ereignisanzeige. Über das Kontextmenü rufen Sie die Eigenschaften der Aufgabe auf. Zunächst sollten Sie auf der Registerkarte Allgemein im unteren Bereich bei Sicherheitsoptionen ein Benutzerkonto auswählen, um die Aufgabe zu starten. Außerdem aktivieren Sie die Option Mit höchsten Privilegien ausführen, wenn das notwendig ist.

So konfigurieren Sie eine Aufgabe für die Aufgabenplanung.

Auf der Registerkarte Trigger überprüfen Sie, ob die korrekte Ereignismeldung als Startwert ausgewählt ist. Bei Aktionen sollte Ihre Batchdatei erscheinen. Bei Bedingungen können Sie weitere Konfigurationen vornehmen, das gilt auch für die Registerkarte Einstellungen.

Alle Aufgaben, die Sie ausführen wollen, müssen Sie nur noch in die Batchdatei oder das PowerShell-Skript aufnehmen. Sie können über Batchdateien auch PowerShell-Skripte ausführen. Dazu müssen Sie aber, wie erwähnt, das Skript als Option des Befehls powershell.exe -file starten und den genauen Pfad eingeben.

Zur Sicherung und Replikation im Netzwerk bietet es sich zudem an, verschiedene Verzeichnisse an andere Ordner und Rechner im Netzwerk zu replizieren, am besten mit Robocopy (siehe auch Robocopy: Daten schnell und einfach unter Windows sichern).

So können Sie mit der PowerShell die Daten der Farm sichern und dann mit Robocopy dieses Verzeichnis im Netzwerk spiegeln. Um die Daten in einer Freigabe auf einen anderen Rechner zu spiegeln, schreiben Sie am besten ein Skript mit dem Befehl robocopy <Quellordner> <Sicherungslaufwerk>:\<Sicherungsordner> /mir.

Die Option /mir kopiert nur geänderte Dateien und löscht Dateien im Zielordner, die im Quellordner nicht mehr vorhanden sind. Das heißt, der erste Kopiervorgang dauert recht lange, da erst alle Dateien kopiert werden müssen. Der Zweite läuft aber deutlich schneller ab, da nur geänderte Dateien kopiert werden. Löschen Sie im Quellordner eine Datei, so löscht der Kopiervorgang diese auch im Backup-Ordner. So erhalten Sie immer eine 1:1-Kopie Ihrer wichtigsten Daten. Sie können ohne Weiteres auch mehrere Ordner sichern. Verwenden Sie in diesem Fall einfach mehrmals den Befehl nacheinander in einem Skript.

Wollen Sie SharePoint mit der PowerShell sichern, müssen Sie noch Nacharbeiten vornehmen. So sollten Sie dem SQL-Server-Agenten des Servers, auf dem die SharePoint-Datenbank gespeichert ist, Leserechte erteilen.

Per Zentraladministration sichern

An dieser Stelle ein kleiner Einschub: Sie können eine Farm natürlich auch in der Zentraladministration sichern. Stellen Sie in diesem Fall sicher, dass das Benutzerkonto Mitglied der SharePoint-Gruppe Farmadministratoren ist. Anschließend können Sie die Sicherung ausführen:

In der Zentraladministration wählen Sie aus, welche Daten Sie sichern wollen.

1. Klicken Sie in der Zentraladministration im Bereich Sichern und Wiederherstellen auf Sicherung durchführen.

2. Wählen Sie auf der Seite Sicherung ausführen - Schritt 1 von 2: Zu sichernde Komponente auswählen die Farm aus und klicken dauf Weiter.

3. Wählen Sie auf der Seite Sicherung starten - Schritt 2 von 2: Sicherungsoptionen auswählen im Bereich Sicherungstyp die Option Vollständig oder Differenziell aus. Wenn Sie die Farm zum ersten Mal sichern, müssen Sie die Option Vollständig verwenden.

4. Klicken Sie im Bereich Nur Konfigurationseinstellungen sichern auf Inhalt und Konfigurationseinstellungen sichern.

5. Geben Sie im Bereich Speicherort der Sicherungsdatei den UNC-Pfad ein und klicken dann auf Sicherung starten. Auch hier können Sie die Sicherung auf Wunsch lokal durchführen, wenn sich SQL und SharePoint auf dem gleichen Server befinden.

Mit Restore-SPFarm Daten wiederherstellen

Haben Sie Daten gesichert, können Sie diese mit dem CMDlet Restore-SPFarm wiederherstellen. Die Syntax ist ähnlich wie bei Backup-SPFarm.

Um eine SharePoint-Farm wiederherzustellen, öffnen Sie entweder die SharePoint-Verwaltungs-Shell, oder Sie öffnen die PowerShell und laden mit Add-PSSnapin -Name "Microsoft.SharePoint.PowerShell" das Modul der PowerShell. Der Befehl zur Wiederherstellung hat folgende Syntax:

Restore-SPFarm -Directory <Verzeichnis mit den Sicherungsdateien> -RestoreMethod Overwrite [-BackupId <GUID>]

Mit der Option BackupId können Sie auswählen, welche Sicherung der Befehl verwenden soll, wenn mehrere Sicherungen existieren. Zum Anzeigen der Sicherungen geben Sie den folgenden Befehl ein:

Get-SPBackupHistory -Directory <Verzeichnis mit den Sicherungen> -ShowBackup [-Verbose]

Geben Sie die Option BackupId nicht an, verwendet Restore-SPFarm die aktuellste Sicherung, die sich im angegebenen Verzeichnis befindet.

Weitere CMDlets zum Sichern nutzen

Neben Backup-SPFarm können Sie zum Sichern von SharePoint 2013 auch weitere CMDlets nutzen, zum Beispiel Backup-SPConfigurationDatabase. Mit diesem CMDlet sichern Sie die Konfiguration der SharePoint-Farm, aber keinerlei Daten:

Backup-SPConfigurationDatabase -Directory <Verzeichnis> [-AssignmentCollection <SPAssignmentCollection>] [-DatabaseCredentials <Anmeldung>] [-DatabaseName <Datenbank>] [-DatabaseServer <Server>] [-Item <String>]

Backup-SPConfigurationDatabase -ShowTree <SwitchParameter> [-AssignmentCollection <SPAssignmentCollection>] [-DatabaseCredentials <PSCredential>] [-DatabaseName <String>] [-DatabaseServer <String>] [-Item <String>]

Mit Directory geben Sie den Pfad an, wo Sie die Daten der Sicherung speichern wollen. Wenn SQL Server und SharePoint auf unterschiedlichen Computern installiert oder mehrere Server mit SharePoint im Einsatz sind, müssen Sie UNC-Freigabepfade verwenden. Sie können in einem Pfad mehrere Sicherungen speichern. Diesen Pfad können Sie dann auch mit der Option Directroy des Cmdlets Restore-SPFarm verwenden. Der Pfad und die Verzeichnisse müssen bereits vorhanden sein, die spbr*-Ordner der Sicherung werden automatisch erstellt.

Wenn Sie nur die Konfiguration der Farm sichern wollen, ist es nicht notwendig, die Optionen DatabaseServer und DatabaseName anzugeben. In diesem Zusammenhang können Sie auch das Cmdlet Backup-SPFarm mit der Option ConfigurationOnly verwenden.

Nachfolgend finden Sie ein paar Beispiele:

Backup-SPConfigurationDatabase -DatabaseName SharePoint_Config -DatabaseServer Sql1 -Directory \\file01\spbackup\Backup -ShowTree

Der Befehl zeigt die Komponenten der Sicherung an. Der nächste Befehl erstellt eine ausführliche Sicherung:

Backup-SPConfigurationDatabase -DatabaseName SharePoint_Config -DatabaseServer Sql1 -Directory \\file01\spbackup\Backup -Verbose

Um Website-Sammlungen in der SharePoint-Verwaltungs-Shell zu sichern, verwenden Sie folgenden Befehl:

Backup-SPSite -Identity <URL der Websitesammlung> -Path <Pfad und Name> [-Force] [-NoSiteLock] [-UseSqlSnapshot] [-Verbose]

Durch die Option -Force überschreibt die Sicherung bereits vorhandene Sicherungsdateien. Mit -NoSiteLock verhindern Sie, dass SharePoint während der Sicherung den Schreibschutz für die Seite setzt.