Programmieren mit dem Sicherungs-/Wiederherstellungsobjektmodell von SharePoint Foundation

Letzte Änderung: Donnerstag, 4. November 2010

Gilt für: SharePoint Foundation 2010

Inhalt dieses Artikels
Das Sicherungs- und Wiederherstellungsobjektmodell
Ratschläge für die Programmierung
Sicherungen und Wiederherstellungen von Websitesammlungen

In diesem Thema wird die Architektur des Sicherungs- und Wiederherstellungsobjektmodells in SharePoint Foundation beschrieben. Außerdem erhalten Sie Ratschläge zum Programmieren für dieses Objektmodell. Ihre Sicherungsanwendung kann eine unabhängige Anwendung oder ein benutzerdefiniertes Powershell-Cmdlet sein. Weitere Informationen zum Erstellen von Powershell-Cmdlets für SharePoint finden Sie unter Windows PowerShell in der SharePoint-Verwaltungsshell.

HinweisHinweis

Es gibt eine Variante des Sicherungs- und Wiederherstellungsobjektmodells für benutzerdefinierte Webdienste, von denen Service Application Framework implementiert wird. Diese Variante wird in diesem Thema nicht behandelt. Weitere Informationen finden Sie unter Sichern und Wiederherstellen in Service Application Framework.

Das Sicherungs- und Wiederherstellungsobjektmodell

An der Spitze des Objektmodells befindet sich die SPBackupRestoreConsole-Klasse. (Siehe Legende 1 in Abbildung 1.) Diese Klasse stellt einen übergeordneten Vorgangs-Manager bereit, mit dem Sicherungs- und Wiederherstellungsaufträge in die Warteschlange gestellt und gestartet werden und der Verlauf der Aufträge dauerhaft in Form von XML-Dateien gespeichert wird. Ein Objekt dieser Klasse befindet sich sozusagen direkt unter der Benutzeroberfläche einer Sicherungsanwendung. Die Member der Klasse sind hauptsächlich statische Methoden und Eigenschaften, von denen Hooks für die Benutzeroberfläche der Sicherungsanwendung bereitgestellt werden. Diese Hooks werden von der Zentraladministrationsanwendung, von PowerShell und vom Befehlszeilentool "Stsadm.exe" verwendet.

In einer Farm ist nur ein Objekt dieser Klasse vorhanden. Das Objekt wird erstellt, wenn einer der zugehörigen Member erstmals aufgerufen wird. Das Objekt bleibt bis zum nächsten Zurücksetzen der Internetinformationsdienste (Internet Information Services, IIS) im Arbeitsspeicher; der Platzbedarf im Arbeitsspeicher ist jedoch gering.

Abbildung 1. Die primären Objekte in der Sicherungs- und Wiederherstellungshierarchie.

Die wichtigsten Klassen im Sicherungsobjektmodell

Jeder einzelne Sicherungs- oder Wiederherstellungsvorgang wird durch ein Objekt der SPBackupRestoreConsoleObject-Klasse dargestellt, das von der CreateBackupRestore(SPBackupRestoreSettings)-Methode des Konsolenobjekts erstellt wird. (Siehe Legende 2 in Abbildung 1, Sicherungs- und Wiederherstellungsvorgänge in der Warteschlange.) Die Eigenschaften eines dieser kompakten Objekte enthalten Informationen zum Vorgang, beispielsweise ob es sich um eine Sicherung oder eine Wiederherstellung handelt, den Speicherort der Sicherungsdateien, die Sicherungs- oder Wiederherstellungsmethode, die aktuelle Phase des Vorgangs und die Struktur der Inhaltskomponenten, der gesichert oder wiederhergestellt werden. Jedes dieser Objekte hat außerdem eine Id-Eigenschaft vom Typ Guid, die als Handle für das Objekt verwendet wird und den Methoden von SPBackupRestoreConsole übergeben werden kann. Beispielsweise wird Run(Guid, SPBackupRestoreObject) die ID des Vorgangs (das heißt das SPBackupRestoreConsoleObject-Objekt) übergeben, der als Nächstes von der Konsole ausgeführt werden soll. Schließlich hat jedes SPBackupRestoreConsoleObject-Objekt eine Settings-Eigenschaft, die ein dauerhaftes Objekt enthält, das ein wiederverwendbares Muster für Sicherungs- oder Wiederherstellungseinstellungen enthält. Mit diesem Objekt wird auch die Inhaltskomponente identifiziert, die mit dem Vorgang gesichert oder wiederhergestellt werden soll. Die Einstellungsobjekte werden gegen Ende dieses Abschnitts ausführlicher behandelt.

Obwohl die SPBackupRestoreConsoleObject-Objekte Vorgänge darstellen, werden die Inhaltskomponenten selbst durch SPBackupRestoreObject-Objekte dargestellt. (Siehe Legende 3 in Abbildung 1.) Diese Objekte können mit der Children-Eigenschaft geschachtelt werden. Daher stellt jedes Objekt eine Struktur aus einer oder mehreren Inhaltskomponenten dar. Eine Webanwendung kann beispielsweise durch ein SPBackupRestoreObject-Objekt dargestellt werden, dem die einzelnen Inhaltsdatenbanken der Webanwendung als SPBackupRestoreObject-Objekte untergeordnet sind. Die Struktur der Komponenten, für die ein bestimmter Sicherungs- oder Wiederherstellungsvorgang ausgeführt werden soll, sind intern mit dem SPBackupRestoreConsoleObject-Objekt verknüpft, das den Vorgang darstellt. Sie können einen Verweis auf das oberste SPBackupRestoreObject-Objekt in der Struktur abrufen, indem Sie der GetRoot(Guid)-Methode die ID des SPBackupRestoreConsoleObject-Objekts übergeben.

Ein SPBackupRestoreObject-Objekt ist ein Container für zwei wichtige Objekttypen:

Neben der Funktion als Container ist SPBackupRestoreObject eine Hilfsklasse, durch die die Interaktion zwischen den Vorgangsobjekten (SPBackupRestoreConsoleObject) auf der einen Seite und den Komponenteninformationsobjekten (SPBackupRestoreInformation, IBackupRestore und IBackupRestoreConfiguration) auf der anderen Seite vereinfacht wird.

Die letzten wichtigen Klassen sind SPBackupSettings und SPRestoreSettings. Ein Objekt eines dieser beiden Typen wird der CreateBackupRestore(SPBackupRestoreSettings)-Methode übergeben, wenn ein Vorgang erstellt wird. (Siehe Legende 5 in Abbildung 1.) Jedes dieser Objekte enthält Einstellungen, die bei Vorgängen verwendet werden; vor allem wird in der IndividualItem-Eigenschaft dieser Objekte die Inhaltskomponente (oder Konfigurationseinstellungskomponente) identifiziert, für die der Sicherungs- oder Wiederherstellungsvorgang ausgeführt wird. (Siehe Legende 6 in Abbildung 1.)

Ratschläge für die Programmierung

Die folgenden Informationen können bei der Entwicklung von Sicherungs- und Wiederherstellungslösungen hilfreich sein.

Anpassungsmöglichkeiten

Die meisten wichtigen Klassen im Sicherungs-/Wiederherstellungsobjektmodell sind versiegelt (NotInheritable in Microsoft Visual Basic). Außerdem wird das Ableiten von den folgenden Klassen nicht unterstützt, obwohl diese nicht versiegelt sind. Sie müssen jeweils die vorhandenen abgeleiteten Klassen verwenden:

Entsprechend gibt es nur zwei primäre Anpassungsmöglichkeiten:

TippTipp

Dies sind die zwei primären Möglichkeiten zum Entwickeln für das Hauptobjektmodell von SharePoint Foundation, Sie können jedoch auch programmatisch mit Momentaufnahmen von Datenbanken und Wiederherstellungen von nicht angefügten Datenbanken arbeiten. Weitere Informationen zu diesen Themen finden Sie unter Programmatische Verwaltung von Momentaufnahmen von Datenbanken, Präzise Datenwiederherstellung aus einer nicht angefügten Datenbank und Gewusst wie: Erstellen einer Datenbankklasse, die aus einem Snapshot wiederhergestellt werden kann.

Berechtigungen

Code zum Sichern von Inhalten muss im Benutzerkontext eines Farmadministrators ausgeführt werden. Code zum Wiederherstellen muss im Kontext eines Benutzers ausgeführt werden, der sowohl Farmadministrator als auch Administrator auf allen Front-End-Servern ist. Der Benutzer sollte außerdem über Lese- und Schreibberechtigungen für den Sicherungsspeicherort verfügen.

Fehlerprotokollierung

Wenn bei einem Sicherungs- oder Wiederherstellungsvorgang Fehler auftreten, werden Details zum Fehler im Sicherungsspeicherort in spbackup.log oder sprestore.log protokolliert.

Sicherungen und Wiederherstellungen von Websitesammlungen

Mit Ausnahme benutzerdefinierter Inhaltstypen, die Sie durch Implementieren von IBackupRestore erstellen, ist eine Inhaltsdatenbank das kleinste Inhaltsobjekt, das Sie mit den Klassen im Microsoft.SharePoint.Administration.Backup-Namespace sichern und wiederherstellen können. Zum programmatischen Sichern oder Wiederherstellen einzelner Websitesammlungen verwenden Sie SPSiteCollection.Backup und SPSiteCollection.Restore. Weitere Informationen zum Sichern und Wiederherstellen von Websitesammlungen finden Sie unter Gewusst wie: Programmgesteuerte Sicherung und Wiederherstellung einer einzelnen Websitesammlung.

Siehe auch

Aufgaben

Gewusst wie: Programmgesteuertes Sichern von Inhalten

Gewusst wie: Programmgesteuertes Wiederherstellen von Inhalten

Gewusst wie: Programmgesteuerte Sicherung und Wiederherstellung einer einzelnen Websitesammlung

Gewusst wie: Erstellen einer Inhaltsklasse, die gesichert und wiederhergestellt werden kann

Gewusst wie: Erstellen einer Datenbankklasse, die aus einem Snapshot wiederhergestellt werden kann

Codebeispiel: Erstellen einer Inhaltsklasse, die gesichert werden kann

Referenz

Microsoft.SharePoint.Administration.Backup

Backup

Restore

Weitere Ressourcen

Befehlszeilentool "Stsadm.exe"