Programmatische Verwaltung von Datenbankspiegelung und Failover

Letzte Änderung: Mittwoch, 13. Januar 2010

Gilt für: SharePoint Foundation 2010

In diesem Thema wird die im Microsoft SharePoint Foundation-Objektmodell enthaltene Unterstützung für das Datenbankspiegelungs- und Failoverfeature von Microsoft SQL Server beschrieben.

Datenbankspiegelung und automatisches Failover

Jede Microsoft SQL Server-Datenbank kann auf einem anderen Server mit SQL Server gespiegelt werden. Jeder Schreib- und Löschvorgang in der primären Datenbank wird in der Spiegeldatenbank dupliziert. Darüber hinaus kann bei einem Hardware- oder Netzwerkfehler oder einem anderen Fehler auf dem primären Server der Spiegelserver sofort die Rolle der primären Datenbank übernehmen, sodass für die Anwendungen, von denen der Server verwendet wird, höchstens minimale Unterbrechungen entstehen.

Wichtiger HinweisWichtig

Die Sicherung der Daten wird durch die Datenbankspiegelung nicht überflüssig. Wenn die primäre Datenbank aus einem anderen Grund als einem Hardwarefehler beschädigt wird, wird im Allgemeinen die Spiegeldatenbank auf die gleiche Weise beschädigt.

Die Unterstützung für Datenbankspiegelung und Failoverserver in SharePoint Foundation besteht im Wesentlichen darin, dass SharePoint Foundation über den Spiegel informiert wird. Die detaillierte Konfiguration erfolgt vollständig in Microsoft SQL Server. Die Zentraladministrationsanwendung enthält eine Benutzeroberfläche zum Identifizieren der Failoverserver für Inhaltsdatenbanken und Dienstanwendungsdatenbanken wie beispielsweise die Suchdatenbank. Hierfür kann auch ein Schnittstellenskript auf der Windows PowerShell-Befehlszeile verwendet werden. Zum Angeben des Failoverservers für die Konfigurationsdatenbank steht ein Windows PowerShell-Befehl zur Verfügung. Wenn die Lösung eine Datenbank enthält, die von den Benutzern gespiegelt werden soll, können Sie SharePoint Foundation mithilfe des Objektmodells über den Failoverserver informieren und diese Informationen in der Konfigurationsdatenbank speichern.

Wenn ein Zeugenserver eingerichtet wurde und der Zugriff auf die primäre Datenbank nicht möglich ist, werden Datenbankzugriffe durch den Zeugenserver automatisch an die Spiegeldatenbank umgeleitet. Auch wenn keine Zeugenserver vorhanden sind, wird der schnelle Wechsel zum Spiegel von SharePoint Foundation unterstützt. Wenn aus irgendeinem Grund der Zugriff auf die primäre Datenbank nicht möglich ist, wird von SharePoint Foundation versucht, eine Verbindung mit dem Spiegel herzustellen. Der Spiegel muss in SQL Server auf Lesbar festgelegt werden.

Unterstützung für Spiegelung und Failover im Objektmodell

Die Datenbankspiegelung wird von drei Membern der SPDatabase-Klasse unterstützt:

  • Mit der FailoverServer-Eigenschaft wird das SPServer-Objekt abgerufen, das den Server darstellt, auf dem der Spiegel der Datenbank gehostet wird. Sie können diese Eigenschaft nur indirekt festlegen, indem Sie AddFailoverServiceInstance(String) aufrufen.

  • Mit der FailoverServiceInstance-Eigenschaft wird das SPDatabaseServiceInstance-Objekt abgerufen oder festgelegt, das die Instanz des Datenbankdiensts darstellt, von dem der Spiegel der Datenbank gehostet wird.

  • Mit der AddFailoverServiceInstance(String)-Methode identifizieren Sie gegenüber SharePoint Foundation einen Server und eine Instanz des Datenbankdiensts, von dem der Spiegel der Datenbank gehostet wird. Wenn der Server noch nicht in der Serverfarm registriert ist, wird der Server durch die Methode registriert. Der an AddFailoverServiceInstance(String) übergebene Parameter muss das Format "Servername/Name_der_Datenbankinstanz" aufweisen. Beispiel: BackupServer/Microsoft##SSEEMirror.

Im folgenden Beispiel wird gezeigt, wie Sie eine Spiegeldatenbank in der SharePoint Foundation-Konfigurationsdatenbank registrieren. cdb entspricht dem SPDatabase-Objekt.

cdb.AddFailoverServiceInstance("Server2/Microsoft##SSEEMirror");
cdb.Update();
cdb.AddFailoverServiceInstance("Server2/Microsoft##SSEEMirror")
cdb.Update()

Wenn in der Lösung eine Benutzeroberfläche für Farmadministratoren als Alternative zur Zentraladministrationsanwendung bereitgestellt wird, können Sie das ContentDatabaseSection-Steuerelement verwenden. Mit bestimmten Eigenschaften dieses Steuerelements, insbesondere mit der FailoverDatabaseServer-Eigenschaft, können Farmadministratoren die relevanten Werte festlegen.