Gewusst wie: Sichern während der Ausführung der Webanwendung

Letzte Änderung: Mittwoch, 13. Januar 2010

Gilt für: SharePoint Foundation 2010

In diesem Thema wird erläutert, wie Sie die Features für Datenbankmomentaufnahmen und für nicht angefügte Datenbanken von Microsoft SharePoint Foundation kombinieren, um eine oder mehrere (oder alle) Websitesammlungen in einer Inhaltsdatenbank zu sichern, während die Hostwebanwendung und die untergeordneten Websites ausgeführt werden. Zu diesem Zweck wird eine Kopie der Inhaltsdatenbank zu einem bestimmten Zeitpunkt erstellt und gesichert, während die ursprüngliche Inhaltsdatenbank weiterhin ausgeführt wird.

Sichern einer Livebereitstellung

Das Sichern einer ausgeführten SharePoint Foundation-Websitesammlung besteht aus drei Schritten. Im ersten Schritt erstellen Sie eine Momentaufnahme einer Inhaltsdatenbank. Im zweiten Schritt erstellen Sie von der Momentaufnahme ein nicht angefügtes Datenbankobjekt. Im dritten Schritt verwenden Sie schließlich anstelle der Liveinhaltsdatenbank die nicht angefügte Datenbank als Quelle für die Sicherung.

Die nicht angefügte Datenbank ist ein SPContentDatabase-Objekt, weshalb die Backup(String, String, Boolean)-Methode der Sites-Eigenschaft vom Code aufgerufen werden kann. Sie können die URL einer bestimmten Websitesammlung an die Methode übergeben, oder der Code kann alle Websitesammlungen in einer Schleife durchlaufen und jeweils Backup(String, String, Boolean) aufrufen.

Wenn Sie alle Inhaltsdatenbanken in einer Webanwendung sichern möchten, kann der Code durch die SPWebApplication.ContentDatabases-Eigenschaft iterieren und den aus drei Schritten bestehenden Vorgang für alle Inhaltsdatenbanken ausführen. Darüber hinaus können Sie natürlich durch alle Webanwendungen der Serverfarm iterieren, um alle Inhaltsdatenbanken in der Serverfarm zu sichern, ohne die Webanwendungen als schreibgeschützt festzulegen.

Weitere Informationen zur programmgesteuerten Kontrolle von Datenbankmomentaufnahmen finden Sie unter Programmatische Verwaltung von Momentaufnahmen von Datenbanken.

So sichern Sie eine Websitesammlung

  1. Rufen Sie einen Verweis auf eine Inhaltsdatenbank ab.

  2. Rufen Sie die CreateSnapshot()-Methode der Snapshots-Sammlung der Inhaltsdatenbank auf.

  3. Übergeben Sie die ConnectionString-Eigenschaft der Momentaufnahme an die statische CreateUnattachedContentDatabase(SqlConnectionStringBuilder)-Methode.

  4. Rufen Sie Backup(String, String, Boolean) auf, und übergeben Sie die URL einer bestimmten Websitesammlung.

VorsichtVorsicht

Eine nicht angefügte Datenbank muss als schreibgeschützt behandelt werden. Wenn Sie die Update()-Methode einer nicht angefügten Datenbank aufrufen, wird die Ausnahme NotSupportedException gemeldet.

Beispiel

Im folgenden Beispiel wird die aktuelle Websitesammlung gesichert, aber die URL jeder anderen Websitesammlung in derselben Inhaltsdatenbank hätte an die Backup(String, String, Boolean)-Methode übergeben werden können.

SPSite siteCol = SPContext.Current.Site;
SPContentDatabase cDB = siteCol.ContentDatabase;

SPDatabaseSnapshot snap = cDB.Snapshots.CreateSnapshot();

SPContentDatabase unDB = SPContentDatabase.CreateUnattachedContentDatabase(snap.ConnectionString);

unDB.Sites.Backup(siteCol.ServerRelativeUrl.Trim('/'), "\\Server\Backups\MySite.bak", true);
Dim siteCol As SPSite = SPContext.Current.Site
Dim cDB As SPContentDatabase = siteCol.ContentDatabase

Dim snap As SPDatabaseSnapshot = cDB.Snapshots.CreateSnapshot()

Dim unDB As SPContentDatabase = SPContentDatabase.CreateUnattachedContentDatabase(snap.ConnectionString)

unDB.Sites.Backup(siteCol.ServerRelativeUrl.Trim("/"c), "\Server\Backups\MySite.bak", True)

Siehe auch

Konzepte

Programmatische Verwaltung von Momentaufnahmen von Datenbanken