21.5    Datensicherung und -wiederherstellung

In diesem Abschnitt geht es um die Sicherung und Wiederherstellung des gesamten SharePoint-Server-Systems. Die Wiederherstellung einzelner Projekte ist in Abschnitt 20.3.5, »Tägliche Sicherung planen (nur in SharePoint-Zentraladministration)« ff, beschrieben.

Alle in SharePoint und Project Server gespeicherten Daten befinden sich in verschiedenen Datenbanken des Microsoft SQL Servers. Für eine Wiederherstellung des Systems nach einem Systemausfall (etwa Festplattendefekt oder Wiederherstellung nach einem fehlgeschlagenen Aktualisierungsversuch) genügt daher notfalls eine Sicherung der SQL-Datenbanken.

Mithilfe einer guten Dokumentation der installierten Umgebung und einer aktuellen SQL Server-Datensicherung kann die Farm neu aufgesetzt und können die benötigten Datenbanken in die Farm eingespielt werden.

Einfacher fällt eine Wiederherstellung aber, wenn nicht nur die Datenbanken gesichert wurden, sondern auch die SharePoint-Konfiguration. Das geschieht durch eine Sicherung der Farm von SharePoint aus.

21.5.1    Sicherung der Farm über Microsoft SharePoint

Eine SharePoint-Sicherung kann entweder grafisch mithilfe der Zentraladministration oder über PowerShell erfolgen. Den Weg über die PowerShell müssen Sie einschlagen, wenn Sie die Sicherung regelmäßig durchführen wollen. Die grafische Variante der Zentraladministration verfügt leider nicht über die Möglichkeit, eine zeitgesteuerte Ausführung zu konfigurieren.

Für die Sicherung und Wiederherstellung gibt es einen eigenen Menüpunkt auf oberster Ebene der Navigation. Der obere Block Farmsicherung und -wiederherstellung bezieht sich auf die Sicherung oder Wiederherstellung der gesamten Farm, der untere Block Differenzierte Sicherung auf einzelne Websitesammlungen, Sites oder Listen. Wählen Sie im oberen Block Sicherung durchführen.

Sicherung der Farm über die Zentraladministration (1)

Abbildung 21.66    Sicherung der Farm über die Zentraladministration (1)

Im nächsten Schritt kann ausgewählt werden, welcher Teil der Farm gesichert werden soll. Hier kann man nur genau einen Knoten zur Sicherung markieren, keine zwei getrennten Zweige der Hierarchie. Im Normalfall sichern Sie die gesamte Farm. Die Auswahl eines Teils der Hierarchie ist eher bei der Wiederherstellung relevant.

Im zweiten Schritt besteht die Möglichkeit, den Sicherungstyp zu bestimmen. Vollständig bedeutet alle Daten. Differenziell bedeutet die Sicherung aller Änderungen seit der letzten Vollsicherung. Entsprechend muss immer erst eine Vollsicherung durchgeführt worden sein, bevor eine differenzielle Sicherung erstellt werden kann.

Außerdem können Sie wählen, ob Sie nur die Konfiguration der Farm oder Konfiguration und Inhalte sichern wollen.

Zielverzeichnis der Sicherung sollte ein freigegebener Ordner in UNC-Schreibweise (\\servername\freigabe\[optional Ordnername]) sein, da der SQL Server in dieses Verzeichnis Datenbanksicherungen schreiben können muss. Das wäre mit einem Pfad in Schreibweise Laufwerk:\Ordnername nur möglich, wenn der SQL Server lokal installiert ist, was nur in Testumgebungen vorkommen sollte.

Sicherung der Farm über die Zentraladministration (2)

Abbildung 21.67    Sicherung der Farm über die Zentraladministration (2)

Sicherung der Farm über die Zentraladministration (3)

Abbildung 21.68    Sicherung der Farm über die Zentraladministration (3)

Anschließend können Sie den Status des erteilten Sicherungsauftrags beobachten.

Sicherung der Farm über die Zentraladministration (4)

Abbildung 21.69    Sicherung der Farm über die Zentraladministration (4)

Die durchgeführten Sicherungen werden im angegebenen Verzeichnis abgelegt. Dabei wird für jede Sicherung ein Unterordner erstellt, der mit einer fortlaufenden Nummerierung versehen wird. Die Datei sbprtoc.xml enthält die Information, welche Sicherung (Typ, Inhalte, Datum) sich in welchem Ordner befindet.

Sicherungsverzeichnis (1)

Abbildung 21.70    Sicherungsverzeichnis (1)

Innerhalb der Ordner befindet sich eine Reihe von ebenfalls fortlaufend nummerierten Dateien. Was sich in welcher Datei befindet, steht in der spbackup.xml. Die spbackup.log enthält das Protokoll der Sicherung. Wenn diese Sicherung bereits für eine Wiederherstellung verwendet wurde, existiert hier auch eine sprestore.log.

Sicherungsverzeichnis (2)

Abbildung 21.71    Sicherungsverzeichnis (2)

Die Sicherung via PowerShell lässt sich fast noch einfacher bewerkstelligen als auf dem grafischen Weg.

Der Befehl für eine vollständige Sicherung von Konfiguration und Inhalten lautet:

Backup-SPFarm –Backupmethod Full –Directory \\Server\Freigabe

21.5.2    Wiederherstellung der Farm

Wenn die SharePoint-Server-Farm aus einer Sicherung wiederhergestellt werden muss, geht dies am einfachsten mithilfe der oben beschriebenen SharePoint-Sicherung.

Bei der Wiederherstellung gehen Sie zunächst so vor, als ob Sie eine neue Farm installieren würden. Sie installieren bis zu der Stelle, an der sich nach Ausführung des SharePoint-Konfigurations-Assistenten die SharePoint-Zentraladministration der rudimentär installierten Farm öffnet. Das ist die Basis, die Sie für die Wiederherstellung benötigen.

Jetzt wählen Sie in der SharePoint-Zentraladministration die Option zur Wiederherstellung der Farm, Farm aus Sicherung wiederherstellen.

Hier geben Sie den Pfad zu Ihrem Sicherungsordner an und wählen die Sicherung, die Sie wiederherstellen wollen. Dann können Sie wählen, ob Sie Inhalt und Konfiguration oder nur die Konfiguration wiederherstellen wollen. Falls Ihr Server weiterhin oder wieder so heißt wie zum Zeitpunkt der Sicherung und auch Systemkonten und Datenbankserver weiterhin gültig sind, können Sie Gleiche Konfiguration wählen. Sonst haben Sie die Möglichkeit, für alle Konfigurationselemente neue Benutzerkonten, Datenbanknamen etc. zu wählen.

Wiederherstellung der Farm aus einer Sicherung

Abbildung 21.72    Wiederherstellung der Farm aus einer Sicherung

Das Problem bei dieser Art der Wiederherstellung ist, dass Sie keinen Fehler machen dürfen. Wenn Sie sich etwa bei einem Kennwort vertippen, wird die Wiederherstellung fehlschlagen, und Sie müssen wieder von vorne anfangen.

21.5.3    SQL Server-Sicherung

Der Microsoft SQL Server ist eigentlich nicht Thema dieses Buches. Da aber nicht in allen Unternehmen, die den Microsoft SharePoint Server einsetzen wollen, Experten für SQL Server-Administration zur Verfügung stehen, hat der technische Administrator des Microsoft SharePoint Servers oft »nebenbei« auch noch das Vergnügen, einen komplexen Datenbankserver betreuen zu dürfen. Daher wollen wir Ihnen hier zumindest die notwendigen Grundlagen vermitteln.

Der Microsoft SQL Server verwendet – wie die meisten modernen Datenbankserversysteme – zwei Arten von Dateien für die Datenbankspeicherung. Zum einen die Daten selbst, die in einer Datei mit der Endung .mdf gespeichert sind, zum anderen ein sogenanntes Transaktionsprotokoll in einer Datei mit der Endung .ldf, in der alle Vorgänge in zeitlicher Reihenfolge gespeichert sind, die Daten hinzufügen, ändern, löschen oder die Struktur der Datenbank verändern (z.B. durch Hinzufügen eines Feldes zu einer Tabelle).

Standardmäßig geht der SQL Server so vor, dass die Protokollierung der Vorgänge im Transaktionsprotokoll ewig fortlaufend durchgeführt wird. Wenn Sie nichts weiter unternehmen, enthält das Transaktionsprotokoll nach einem halbjährigen Betrieb des Servers ein lückenloses Protokoll aller Änderungen der letzten sechs Monate.

Das ist zunächst positiv, weil mit Transaktionsprotokollen eine Wiederherstellung zu einem beliebigen Zeitpunkt möglich ist. Sie könnten also den SQL Server anweisen, die Datenbank in den Stand von vor vier Monaten zu versetzen.

Leider gibt es dabei aber noch das Problem des endlichen Plattenplatzes. Je nach Verwendung einer Datenbank kann das Transaktionsprotokoll dramatisch anwachsen und nach einiger Zeit ein Vielfaches der Größe der zugehörigen Datenbank erreichen. Das geht so lange gut, bis der Plattenplatz erschöpft ist und der SQL Server die Daten nicht mehr schreiben kann. Dann verweigert er die Änderung von Daten – und die Microsoft-Project-Server-Farm funktioniert nicht mehr.

Dieses Problem tritt immer wieder auf, und einige unserer Kunden hatten in der Vergangenheit mehrfach den Ausfall von Microsoft-Project-Server-Systemen zu beklagen. Wir können Sie allerdings in zweierlei Hinsicht beruhigen:

Wie können Sie nun das Problem der laufend anwachsenden Transaktionsprotokolldateien lösen? Hier gibt es zwei Möglichkeiten:

Wiederherstellungsmodell »Einfach«

autorDie Änderung des Wiederherstellungsmodells auf Einfach ist also sehr schnell umgesetzt – sie hat aber eine wichtige Konsequenz, über die Sie sich im Klaren sein sollten:

 

Nehmen wir an, es ist 15:45 Uhr am Montag. Sie führen werktags um 22:00 Uhr vollständige Sicherungen der Datenbanken durch. Sie nehmen eine Änderung am System vor, die Sie lieber hätten bleiben lassen.

Mithilfe der vollständigen Sicherung können Sie den Stand der Datenbank von Freitag 22:00 Uhr wiederherstellen. Mithilfe des Transaktionsprotokolls könnten Sie außerdem alle Änderungen seit 22:00 Uhr bis zum von Ihnen gewünschten Zeitpunkt (15:44 Uhr) in die Datenbank einspielen lassen – wenn die Protokolldatei alle Änderungen enthält. Wenn Sie aber das Wiederherstellungsmodell auf Einfach konfiguriert haben, so enthält die Protokolldatei vielleicht nur die Änderungen von 15:40 bis 15:45 Uhr, aber nicht die vollständige Historie.

Wie werden nun Datenbanken und Transaktionsprotokoll gesichert? Dazu gehen Sie folgendermaßen vor:

  1. Starten Sie das SQL Management Studio, und führen Sie einen Rechtsklick auf die Datenbank aus. Wählen Sie Tasks • Sichern.
    Sichern einer Datenbank

    Abbildung 21.73    Sichern einer Datenbank

  2. Hier können Sie den Typ der Sicherung auswählen. Folgende Sicherungstypen stehen zur Auswahl:
    • Vollständig (Full): Die Datenbank wird gesichert.
    • Differenziell: Das Transaktionsprotokoll wird gesichert, und es wird nichts zum Überschreiben markiert (die Protokolldatei wächst also weiter an).
    • Transaktionsprotokoll: Das Transaktionsprotokoll wird gesichert, und die Inhalte zum Überschreiben werden markiert.
    Sie können mehrere Sicherungen in das gleiche Medium schreiben, wobei ein Medium eine Datei oder ein Band sein kann.
  3. Eine solche Sicherung wollen Sie vermutlich für mehrere Datenbanken und wiederholt durchführen. Dazu bedienen Sie sich am besten eines sogenannten Wartungsplans. Wartungspläne erstellen Sie im SQL Management Studio, indem Sie Verwaltung • Wartungspläne auswählen und dort mit einem Rechtsklick Neuer Wartungsplan wählen. Geben Sie dem Wartungsplan einen Namen (z.B. Vollsicherung).
  4. Ziehen Sie aus dem Toolbox-Bereich den Vorgang Task ›Datenbank sichern‹ in den Entwurfsbereich. Doppelklicken Sie dann auf diesen Vorgang.
  5. Wählen Sie die zu sichernden Datenbanken sowie einen Zielordner. Wenn Sie mehrere Datenbanken sichern und mehrere Sicherungen aufheben, sollten Sie die Option Unterverzeichnis für jede Datenbank erstellen wählen.
  6. Wenn Sie sich für das Wiederherstellungsmodell Vollständig entschieden haben, fügen Sie am besten noch einen weiteren Vorgang zur Sicherung der Transaktionsprotokolle hinzu.

Die erstellten Sicherungsdateien tragen jeweils den Datenbanknamen, Datum und Uhrzeit im Namen. Wenn Sie daher etwa tägliche Sicherungen durchführen, wird jeden Tag eine zusätzliche Datei erstellt und nicht etwa dieselbe Datei immer wieder überschrieben. Sie müssen daher dafür sorgen, dass alte Sicherungsstände aus dem Ordner gelöscht werden. Entweder machen Sie das im Rahmen der Übertragung dieser Sicherungen auf ein externes Medium, oder Sie lassen das durch den Wartungsplan mit erledigen. Wenn Sie Letzteres wünschen, gehen Sie wie folgt vor:

  1. Fügen Sie aus der Toolbox noch den Vorgang Wartungscleanup ausführen hinzu.
  2. Verbinden Sie die beiden Vorgänge miteinander. Standardmäßig wird der zweite Vorgang nur ausgeführt, wenn der erste erfolgreich abgeschlossen wurde. Das sollten Sie auch so lassen, damit nicht etwa aus irgendwelchen Gründen die Sicherung mal nicht funktioniert, der Job aber die alten Sicherungen trotzdem löscht und Sie dann gar keine Sicherungen zur Verfügung haben.
  3. Wählen Sie dann die Eigenschaften des Vorgangs Wartungscleanup ausführen, und konfigurieren Sie die gewünschten Parameter für das Verzeichnis, die Dateiendung, den Schwellenwert für das Alter der zu löschenden Dateien sowie die Option, ob auch in Unterverzeichnissen gelöscht werden soll. Letzteres sollten Sie aktivieren, wenn Sie bei der Sicherung oben Unterverzeichnisse erstellen gewählt haben.
  4. Abschließend sollten Sie in dem Wartungsplan noch einen Zeitplan für seine Ausführung konfigurieren.
  5. Nach dem Speichern des Wartungsplans können Sie ihn zu Testzwecken manuell starten, indem Sie auf den erstellten Wartungsplan rechtsklicken und Ausführen wählen.