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.
Hinweis |
---|
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.
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:
In der Information-Eigenschaft des SPBackupRestoreObject-Objekts befindet sich ein SPBackupInformation- oder SPRestoreInformation-Objekt. Diese Objekttypen enthalten Informationen zur Vorgehensweise beim Sichern oder Wiederherstellen einer bestimmten Komponente sowie Methoden, die intern als Teil eines Vorgangs von SPBackupRestoreConsoleObject und SPBackupRestoreObject aufgerufen werden können. Genauer gesagt enthalten diese Klassen Methoden und Eigenschaften, deren Implementierung unabhängig davon, welche Art von Inhaltskomponente dargestellt wird, unverändert bleiben sollte. Daher sind diese Klassen versiegelt; das Ableiten einer neuen Klasse von der übergeordneten SPBackupRestoreInformation-Klasse wird nicht unterstützt.
In der IBackupRestore-Eigenschaft des SPBackupRestoreObject-Objekts befindet sich ein Objekt, mit dem die IBackupRestore-Schnittstelle oder das IBackupRestoreConfiguration-Objekt (das IBackupRestore enthält) implementiert wird. Das Objekt kann auch von SPPersistedObject erben. (Siehe Legende 4 in Abbildung 1.) Durch die Implementierung einer dieser Schnittstellen wird ein Objekt in ein Element verwandelt, das potenziell gesichert und wiederhergestellt werden kann. Wie ein SPBackupRestoreInformation-Objekt enthält ein IBackupRestore-Objekt (oder IBackupRestoreConfiguration-Objekt) Member, von denen Informationen und Methoden bereitgestellt werden, die für Sicherungen und Wiederherstellungen benötigt werden. Die Member dieser Schnittstellen müssen jedoch abhängig von der Art der dargestellten Inhaltskomponente unterschiedlich implementiert werden. Am wichtigsten ist, dass die Implementierung Ereignishandler für die Ereignisse eines Vorgangs enthält, beispielsweise OnBackup(Object, SPBackupInformation) und OnRestore(Object, SPRestoreInformation).
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:
SPBackupRestoreInformation Vorhandene abgeleitete Klassen: SPBackupInformation und SPRestoreInformation
SPBackupRestoreSettings Vorhandene abgeleitete Klassen: SPBackupSettings und SPRestoreSettings
Entsprechend gibt es nur zwei primäre Anpassungsmöglichkeiten:
Sie können eine eigene allgemeine Anwendung (und Benutzeroberfläche) erstellen, in der die statischen Methoden der Vorgangskonsole (SPBackupRestoreConsole-Objekt) verwendet werden, um Sicherungs- und Wiederherstellungsaufträge zu verwalten und auszuführen. Weitere Informationen hierzu finden Sie unter Gewusst wie: Programmgesteuertes Sichern von Inhalten und Gewusst wie: Programmgesteuertes Wiederherstellen von Inhalten.
Sie können eine Klasse erstellen, von der die Schnittstelle IBackupRestore oder IBackupRestoreConfiguration (die IBackupRestore enthält) implementiert wird und von der außerdem die SPPersistedObject-Klasse abgeleitet und die IDatabaseSnapshotRestore-Schnittstelle implementiert werden kann. Weitere Informationen zum Erstellen einer benutzerdefinierten Inhaltsklasse (oder Konfigurationseinstellungsklasse) finden Sie unter Gewusst wie: Erstellen einer Inhaltsklasse, die gesichert und wiederhergestellt werden kann und Gewusst wie: Erstellen einer Klasse, die in reine Konfigurationssicherungen und -wiederherstellungen einbezogen wird.
Tipp |
---|
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