Konfigurieren der Verfügbarkeit in einer einzelnen Farm mithilfe von SQL Server-Datenbankspiegelung

In diesem Artikel wird beschrieben, wie Sie Datenbankspiegelung mit hoher Verfügbarkeit verwenden, um die Verfügbarkeit in einer Farm für Microsoft Office SharePoint Server 2007 zu konfigurieren. Der Artikel setzt voraus, dass Sie mit den Konzepten und Begriffen vertraut sind, die in Planen der Verfügbarkeit (Office SharePoint Server) vorgestellt wurden.

Die Datenbankspiegelung in Microsoft SQL Server 2005 unterstützt die Verfügbarkeit, indem Transaktionen direkt aus einer Prinzipaldatenbank und einem Prinzipalserver jedes Mal an eine Spiegeldatenbank und einen Spiegelserver gesendet werden, wenn der Transaktionsprotokollpuffer der Prinzipaldatenbank auf den Datenträger geschrieben wird. Es wird empfohlen, für Verfügbarkeit in einer Microsoft Office SharePoint Server 2007-Farm die Datenbankspiegelung mit hoher Verfügbarkeit zu verwenden, die auch als Hochsicherheitsmodus mit automatischem Failover bezeichnet wird. Die Datenbankspiegelung mit hoher Verfügbarkeit umfasst drei Serverinstanzen: einen Prinzipalserver, einen Spiegelserver und einen Zeugenserver. Der Zeugenserver ermöglicht SQL Server einen automatischen Failover vom Prinzipalserver auf den Spiegelserver. Der Failover der Prinzipaldatenbank zur Spiegeldatenbank dauert normalerweise einige Sekunden.

In einer SharePoint-Farm kann durch Spiegelung Redundanz für alle Datenbanken bereitgestellt werden - wenn für Datenbanken ein Failover ausgeführt wird, wird angenommen, dass die Front-End-Webserver verfügbar bleiben. In der folgenden Abbildung wird gezeigt, wie die Spiegelung konfiguriert wird, um hohe Verfügbarkeit in einer Farm bereitzustellen.

Diagrammspiegelung aller Datenbanken in einer Farm

In Microsoft Office SharePoint Server 2007 wird Spiegelung nicht unterstützt. Wenn Sie Spiegelung als Verfügbarkeitslösung verwenden möchten, wird empfohlen, die Datenbanken für die Verwendung von SQL Server-Clientaliasing zu konfigurieren und Skripts auszuführen, um den SQL Server-Clientalias beim Failover zu ändern.

Anforderungen für die Datenbankspiegelung

Stellen Sie vor dem Konfigurieren der Datenbankspiegelung sicher, dass die Datenbanken und das System die folgenden Anforderungen erfüllen:

  • Für das System wird eine Latenz von nicht mehr als 1 Millisekunde empfohlen.

  • Die Systembandbreite sollte vorzugsweise 1 GB pro Sekunde betragen.

  • Protokolle werden in Echtzeit zwischen den Prinzipal- und Spiegelservern kopiert, und durch das Kopieren kann die Leistung beeinträchtigt werden. Stellen Sie sicher, dass sowohl auf dem Prinzipalserver als auch auf dem Spiegelserver ausreichender Arbeitsspeicher und ausreichende Bandbreite vorhanden ist.

  • Auf dem Prinzipalserver und auf dem Spiegelserver muss die gleiche Edition von Microsoft SQL Server 2005 mit Service Pack 1 (SP1) ausgeführt werden. Datenbankspiegelung ist nur in den Editionen Standard, Developer und Enterprise verfügbar. Auf dem Zeugenserver kann eine beliebige Version von SQL Server 2005, einschließlich SQL Server 2005 Express Edition, ausgeführt werden.

  • Spiegelung kann nur für Datenbanken verwendet werden, für die das vollständige Wiederherstellungsmodell verwendet wird.

    Standardmäßig sind Microsoft Office SharePoint Server 2007-SSP-Datenbanken für die Verwendung des einfachen Wiederherstellungsmodells konfiguriert. Zum Konfigurieren der Datenbankspiegelung muss das Wiederherstellungsmodell der Datenbank auf Vollständig festgelegt sein. Weitere Informationen zum Festlegen des Wiederherstellungsmodells für eine Datenbank finden Sie unter Vorgehensweise: Anzeigen oder Ändern eines Wiederherstellungsmodells einer Datenbank (SQL Server Management Studio) (https://go.microsoft.com/fwlink/?linkid=132075&clcid=0x407).

  • Berücksichtigen Sie beim Planen der Spiegelung von SSP-Datenbanken, dass das Transaktionsprotokoll für diese Datenbanken sehr groß werden kann. Ziehen Sie als Umgehung dieses Problems einen Wiederherstellungsplan in Betracht, bei dem Transaktionsprotokolle nach Bedarf abgeschnitten werden. Weitere Informationen finden Sie im folgenden Artikel in der Microsoft Knowledge Base: So verhindern Sie, dass das Transaktionsprotokoll einer SQL Server-Datenbank unerwarteterweise größer wird (https://go.microsoft.com/fwlink/?linkid=111458&clcid=0x407).

  • Bei jeder Datenbankspiegelungssitzung werden für jede Datenbank mindestens zwei Threads erstellt. Stellen Sie sicher, dass auf dem Datenbankserver genug Threads vorhanden sind, um diese für die Spiegelung aller unterstützten Datenbanken zuzuordnen. Wenn nicht genug Threads vorhanden sind, kann dies die Leistung zunehmend beeinträchtigen, wenn einer Sitzung weitere Datenbanken hinzugefügt werden.

    In der Hostingumgebung bei Microsoft wurde festgestellt, dass ein Maximum von 50 Datenbanken für die Spiegelung von Datenbanken von einer einzigen SQL Server-Instanz, in der SharePoint-Produkte und -Technologien gehostet werden, angemessen ist. Dieses Maximum basiert auf der Ressourcenintensität der Spiegelung (für jede Prinzipalinstanz und jede Spiegelinstanz sind dedizierte Threads erforderlich) und der Tests. Ihre Ergebnisse können abhängig von den folgenden Faktoren abweichen:

    • Arbeitsspeicher der Prinzipal- und Spiegelinstanzen

    • Verarbeitungsleistung der Prinzipal- und Spiegelinstanzen

    • Bandbreite der E/A-Subsysteme auf den Prinzipal- und Spiegelinstanzen

    • Menge der Transaktionsprotokolle, die durch die Arbeitsauslastung in den einzelnen Datenbanken generiert werden

    • Netzwerkbandbreite zwischen den Prinzipal- und Spiegelinstanzen

Weitere Informationen zur Leistung und zum Maßstab für die Datenbankspiegelung finden Sie unter Datenbankspiegelung in SQL Server 2005 (in englischer Sprache) (https://go.microsoft.com/fwlink/?linkid=83566&clcid=0x407).

Sicherheit im Zusammenhang mit der Datenbankspiegelung

Bei der Datenbankspiegelung werden TCP-Sitzungen verwendet, um das Transaktionsprotokoll von einem Server zu einem anderen zu transportieren und die aktuelle Integrität des System auf automatische Failover zu überwachen. Die Authentifizierung wird auf Sitzungsebene ausgeführt, wenn ein Port für eine Verbindung geöffnet wird.

  • Windows-Authentifizierung (NTLM oder Kerberos)

  • Zertifikate

In diesem Dokument wird die Verwendung von Datenbankspiegelung mit Zertifikaten beschrieben. Weitere Informationen zum Verwenden von Windows-Authentifizierung für die Datenbankspiegelung finden Sie unter Beispiel: Einrichten der Datenbankspiegelung mithilfe der Windows-Authentifizierung (Transact-SQL) (https://go.microsoft.com/fwlink/?linkid=83567&clcid=0x407).

Wenn das Netzwerk nicht sicher ist, sollten die während der Sitzung übertragenen Daten verschlüsselt werden. In diesem Dokument wird beschrieben, wie Sie Verschlüsselung für die über das Netzwerk übertragenen Daten mithilfe von RC4 einrichten. Für die Datenbankspiegelung werden jedoch die Verschlüsselungsalgorithmen AES und RC4 unterstützt. Weitere Informationen zur Sicherheit im Zusammenhang mit der Datenbankspiegelung finden Sie unter Transportsicherheit bei der Datenbankspiegelung (https://go.microsoft.com/fwlink/?linkid=83569&clcid=0x407).

SharePoint-Sicherheit und gespiegelte Server

Beim Einrichten einer gespiegelten Datenbank werden die SQL Server-Anmeldungen und -Berechtigungen für die Datenbank, die für eine SharePoint-Farm verwendet werden soll, nicht automatisch in den Master- und MSDB-Datenbanken auf dem Spiegelserver konfiguriert. Stattdessen müssen Sie die Berechtigungen für die erforderlichen Anmeldungen konfigurieren. Dazu gehört unter anderem Folgendes:

  • Das Anwendungspoolkonto für die Zentraladministration sollte Mitglied der festen Serverrollen dbcreator und securityadmin sein.

  • Alle Anwendungspoolkonten sowie die Suchdienste und die standardmäßigen Inhaltszugriffskonten sollten über SQL Server-Anmeldungen verfügen, obwohl sie nicht festen SQL Server-Serverrollen oder Datenbankrollen zugewiesen sind.

  • Mitglieder der SharePoint-Gruppe der Farmadministratoren sollten ebenfalls über SQL Server-Anmeldungen verfügen und Mitglieder der gleichen Rollen sein wie das Anwendungspoolkonto für die Zentraladministration.

Es wird empfohlen, die Anmeldungen und Berechtigungen durch Ausführen eines Skripts vom Prinzipalserver auf den Spiegelserver zu übertragen. Ein Beispielskript ist in Knowledge Base-Artikel 918992, Übertragen von Benutzernamen und Kennwörtern zwischen Instanzen von SQL Server 2005 (https://go.microsoft.com/fwlink/?linkid=122053&clcid=0x407) verfügbar. Allgemeinere Informationen zum Übertragen von SQL Server-Metadaten zwischen Instanzen finden Sie im Artikel Verwalten von Metadaten beim Bereitstellen einer Datenbank auf einer anderen Serverinstanz (https://go.microsoft.com/fwlink/?linkid=122055&clcid=0x407) in der SQL Server-Onlinedokumentation.

Empfohlene Topologien

Es wird empfohlen, eine 1:1-Zuordnung zwischen Prinzipalserver und Spiegelserver aufrechterhalten, um die Kompatibilität mit SharePoint-Produkten und -Technologien sicherzustellen.

Zu den unterstützten Topologien gehört die Spiegelung aller Inhaltsdatenbanken, der Konfigurationsdatenbank und der Inhaltsdatenbank der Zentraladministration. Außerdem können Sie für Office SharePoint Server die SSP-Datenbank, die SSP-Suchdatenbank und die SSP-Inhaltsdatenbanken spiegeln.

In den folgenden Abbildungen werden einige der unterstützten Topologien veranschaulicht.

Unterstützte Topologien für die Spiegelung

Vermeiden Sie Topologien, in denen Prinzipal- und Spiegelserver nicht übereinstimmen. Lassen Sie außerdem die Konfigurationsdatenbank und die Inhaltsdatenbank für die Administration auf dem gleichen Server. Im folgenden Diagramm wird eine nicht unterstützte Topologie veranschaulicht.

Nicht unterstützte Topologien für die Spiegelung

Einrichten von SQL Server-Verbindungsaliasen

Ein SQL Server-Verbindungsalias ist ein definierter alternativer Name, der zum Herstellen einer Verbindung mit einer Instanz von SQL Server verwendet werden kann. Für SharePoint-Produkte und -Technologien können Sie einen SQL Server-Alias erstellen, der von allen Servern (einschließlich der Front-End-Webserver) zum Herstellen einer Verbindung mit der Instanz von SQL Server verwendet wird. Wenn für einen gespiegelten Datenbankserver ein Failover ausgeführt wird, passen Sie den Alias auf dem Front-End-Webserver so an, dass dieser anstatt auf den Prinzipalserver auf den Spiegelserver zeigt. Es wird empfohlen, SQL Server-Verbindungsaliase einzurichten, bevor Sie die Spiegelung implementieren.

Hinweis

Wenn Sie Aliasing für eine vorhandene Farm einrichten, verwenden Sie einen Alias, der dem Namen des Prinzipalservers entspricht, damit für die Verwendung des Alias keine Änderungen auf den Front-End-Webservern vorgenommen werden müssen.

Führen Sie die folgenden Schritte auf allen Front-End-Webservern und auf allen Servern, die Verbindungen mit SQL Server herstellen, aus.

  1. Starten Sie die SQL Server Native Client-Netzwerkkonfiguration (%SYSTEM%\cliconfg.exe).

  2. Klicken Sie auf die Registerkarte Alias, und klicken Sie dann auf Hinzufügen.

    Das Dialogfeld Netzwerkbibliotheks-Konfiguration hinzufügen wird angezeigt.

  3. Wählen Sie TCP/IP aus, geben Sie einen Alias ein, geben Sie den Servernamen ein, der dem Alias zugeordnet werden soll, und klicken Sie dann auf OK.

  4. Wiederholen Sie diese Aktionen für alle Server, die Verbindungen mit SQL Server herstellen.

Einrichten der Datenbankspiegelung

In diesem Abschnitt wird beschrieben, wie Sie Transact-SQL verwenden, um Datenbankspiegelung mit hoher Verfügbarkeit für eine SQL Server-Datenbank einzurichten.

Zum Einrichten der Datenbankspiegelung mit SharePoint-Produkten und -Technologien müssen Sie mit jeder zu spiegelnden Datenbank einzeln arbeiten.

Die Schritte im folgenden Abschnitt beziehen sich auf die folgende Serverfarmtopologie:

  • Mindestens ein Front-End-Webserver

  • Drei Server mit SQL Server 2005: Prinzipalserver, Spiegelserver und Zeugenserver

  • Eine Konfigurationsdatenbank

  • Mehrere Inhaltsdatenbanken

  • Mindestens eine SSP-Datenbank

Konfigurieren der Datenbankspiegelung mit Zertifikaten und vollständiger Wiederherstellung

Für jeden Schritt wird der Server genannt, für den der Schritt ausgeführt werden muss. Verwenden Sie Transact-SQL, um diese Befehle an SQL Server zu senden. Platzhalterinformationen sind durch spitze Klammern (<>) gekennzeichnet und müssen durch für Ihre Bereitstellung spezifische Informationen ersetzt werden.

Einrichten des Prinzipalservers für ausgehende Verbindungen

  1. Erstellen Sie auf dem Prinzipalserver ein Zertifikat, und öffnen Sie einen Port für die Spiegelung.

    --On master database, create the database Master Key, if needed
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<test1234->';
    GO
    -- Make a certificate for this server instance.
    USE master;
    CREATE CERTIFICATE <MASTER_HostA_cert> 
       WITH SUBJECT = '<Master_HostA certificate>';
    GO
    --Create mirroring endpoint for server instance using the certificate
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE <MASTER_HostA_cert>
          , ENCRYPTION = REQUIRED ALGORITHM RC4
          , ROLE = ALL
       );
    GO
    
  2. Sichern Sie das Zertifikat auf dem Prinzipalserver.

    --Back up HOST_A certificate.
    BACKUP CERTIFICATE MASTER_HostA_cert TO FILE = '<c:\MASTER_HostA_cert.cer>';
    GO
    
  3. Sichern Sie die Datenbank auf dem Prinzipalserver. In diesem Beispiel wird die Konfigurationsdatenbank verwendet. Wiederholen Sie die Aktionen für alle Datenbanken.

    USE master;
    --Ensure that SharePoint_Config uses the full recovery model.
    ALTER DATABASE SharePoint_Config
       SET RECOVERY FULL;
    GO
    USE SharePoint_Config
    BACKUP DATABASE SharePoint_Config 
        TO DISK = '<c:\SharePoint_Config.bak>' 
        WITH FORMAT
    GO
    BACKUP Log SharePoint_Config 
        TO DISK = '<c:\SharePoint_Config_log.bak>' 
        WITH FORMAT
    GO
    
  4. Kopieren Sie die Sicherungsdatei auf den Spiegelserver. Wiederholen Sie die Aktionen für alle Datenbanken.

  5. Kopieren Sie mithilfe einer sicheren Kopiermethode die Sicherungszertifikatdatei (beispielsweise C:\HOST_HostA_cert.cer) auf den Spiegelserver.

  6. Erstellen Sie auf dem Prinzipalserver eine Anmeldung und einen Benutzer für den Spiegelserver, ordnen Sie das Zertifikat dem Benutzer zu, und erteilen Sie für die Partnerschaft die Verbindungsberechtigungen für die Anmeldung.

    --Create a login on HOST_A for HOST_B
    USE master;
    CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>';
    GO
    --Create a user for that login.
    CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <HOST_HostB_cert>
       AUTHORIZATION <HOST_HostB_user>
       FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not try to use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>];
    GO
    

Einrichten des Spiegelservers für ausgehende Verbindungen

  1. Erstellen Sie auf dem Spiegelserver ein Zertifikat, und öffnen Sie einen Port für die Spiegelung.

    --On master database, create the database Master Key, if needed.
    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1234-test>';
    GO
    -- Make a certificate on the HOST_B server instance.
    CREATE CERTIFICATE <HOST_HostB>
       WITH SUBJECT = '<HOST_HostB certificate for database mirroring>';
    GO
    --Create a mirroring endpoint for the server instance on HOST_B.
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE <HOST_HostB>
          , ENCRYPTION = REQUIRED ALGORITHM RC4
          , ROLE = ALL
       );
    GO
    
  2. Sichern Sie das Zertifikat auf dem Spiegelserver.

    --Back up HOST_B certificate.
    BACKUP CERTIFICATE <HOST_HostB> TO FILE = '<C:\HOST_HostB_cert.cer>';
    GO 
    
  3. Kopieren Sie mithilfe einer sicheren Kopiermethode die Sicherungszertifikatdatei (beispielsweise C:\HOST_HostB_cert.cer) auf den Prinzipalserver.

  4. Stellen Sie auf dem Spiegelserver die Datenbank aus den Sicherungsdateien wieder her. In diesem Beispiel wird die Konfigurationsdatenbank verwendet. Wiederholen Sie die Aktionen für alle Datenbanken.

    RESTORE DATABASE SharePoint_Config 
        FROM DISK = '<c:\SharePoint_Config.bak>' 
        WITH NORECOVERY
    GO
    RESTORE log SharePoint_Config 
        FROM DISK = '<c:\SharePoint_Config_log.bak>' 
        WITH NORECOVERY
    GO
    

Einrichten des Spiegelservers für eingehende Verbindungen

  • Erstellen Sie auf dem Spiegelserver eine Anmeldung und einen Benutzer für den Prinzipalserver, ordnen Sie das Zertifikat dem Benutzer zu, und erteilen Sie für die Partnerschaft die Verbindungsberechtigungen für die Anmeldung.

    --Create a login on HOST_B for HOST_A
    USE master;
    CREATE LOGIN <MASTER_HostA_login> WITH PASSWORD = '<test1234->';
    GO
    --Create a user for that login.
    CREATE USER <MASTER_HostA_user> FOR LOGIN <MASTER_HostA_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <MASTER_HostA_cert>
       AUTHORIZATION <MASTER_HostA_user>
       FROM FILE = '<c:\MASTER_HostA_cert.cer>' --do not try to use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<MASTER_HostA_login>];
    GO
    

Einrichten des Prinzipalservers für eingehende Verbindungen

  • Erstellen Sie auf dem Prinzipalserver eine Anmeldung und einen Benutzer für den Spiegelserver, ordnen Sie das Zertifikat dem Benutzer zu, und erteilen Sie für die Partnerschaft die Verbindungsberechtigungen für die Anmeldung.

    --Create a login on HOST_A for HOST_B
    USE master;
    CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>';
    GO
    --Create a user for that login.
    CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <HOST_HostB_cert>
       AUTHORIZATION <HOST_HostB_user>
       FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not try to use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>];
    GO
    

Einrichten der Spiegelungspartner

  1. Richten Sie auf dem Prinzipalserver die Spiegelungspartnerschaft ein. In diesem Beispiel wird die Konfigurationsdatenbank verwendet. Wiederholen Sie die Aktionen für alle Datenbanken.

    --At HOST_A, set server instance on HOST_B as partner (mirror server).
    ALTER DATABASE SharePoint_Config
        SET PARTNER = '<TCP://databasemirror.adatum.com:5024>';
    GO
    
  2. Richten Sie auf dem Spiegelserver die Spiegelungspartnerschaft ein. In diesem Beispiel wird die Konfigurationsdatenbank verwendet. Wiederholen Sie die Aktionen für alle Datenbanken.

    --At HOST_B, set server instance on HOST_A as partner (principal server):
    ALTER DATABASE SharePoint_Config 
        SET PARTNER = '<TCP://databasemaster.adatum.com:5024>';
    GO
    

Einrichten eines Zeugenservers

Für jeden Schritt wird der Server genannt, für den der Schritt ausgeführt werden muss. Verwenden Sie Transact-SQL, um diese Befehle an SQL Server zu senden. Platzhalterinformationen sind durch spitze Klammern (<>) gekennzeichnet und müssen durch für Ihre Bereitstellung spezifische Informationen ersetzt werden.

  1. Richten Sie auf dem Zeugenserver das Zertifikat ein, und öffnen Sie den Port.

    --On master database, create the database Master Key, if needed
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1234test->';
    GO
    -- Make a certificate for this server instance.
    USE master;
    CREATE CERTIFICATE <WITNESS_HostC_cert> 
       WITH SUBJECT = '<Witness_HostC certificate>';
    GO
    --Create mirroring endpoint for server instance using the certificate
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE <WITNESS_HostC_cert
          , ENCRYPTION = REQUIRED ALGORITHM RC4
          , ROLE = ALL
       );
    GO
    
  2. Sichern Sie das Zertifikat auf dem Prinzipalserver.

    --Back up HOST_C certificate 
    BACKUP CERTIFICATE <WITNESS_HostC_cert> TO FILE = '<c:\ WITNESS_HostC_cert.cer>';
    GO
    
  3. Kopieren Sie mithilfe einer sicheren Kopiermethode die Sicherungszertifikatdatei (beispielsweise C:\WITNESS_HOSTC_cert.cer) auf den Prinzipalserver und den Spiegelserver.

  4. Kopieren Sie mithilfe einer sicheren Kopiermethode die Sicherungszertifikatdatei (beispielsweise C:\WITNESS_HOSTC_cert.cer) auf den Prinzipalserver und den Spiegelserver.

    --Create a login on Witness HOST_C for Principal HOST_A
    USE master;
    CREATE LOGIN <MASTER_HostA_login> WITH PASSWORD = '<test1234->';
    GO
    --Create a user for that login.
    CREATE USER <MASTER_HostA_user> FOR LOGIN <MASTER_HostA_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <MASTER_HostA_cert>
       AUTHORIZATION <MASTER_HostA_user>
       FROM FILE = '<c:\MASTER_HostA_cert.cer>' --do not try to use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<MASTER_HostA_login>];
    GO
    --Create Login for Mirror Host B
    CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>';
    GO
    --Create a user for that login.
    CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <HOST_HostB_cert>
       AUTHORIZATION <HOST_HostB_user>
       FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not try to use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>];
    GO
    
  5. Erstellen Sie auf dem Prinzipalserver eine Anmeldung und einen Benutzer für den Zeugenserver, ordnen Sie das Zertifikat dem Benutzer zu, und erteilen Sie für die Partnerschaft die Verbindungsberechtigungen für die Anmeldung. Wiederholen Sie die Aktionen für den Spiegelserver.

    --Create a login on Master HostA for Witness HostC
    USE master;
    CREATE LOGIN <WITNESS_HostC_login> WITH PASSWORD = '<1234test->';
    GO
    --Create a user for that login.
    CREATE USER <WITNESS_HostC_user> FOR LOGIN <WITNESS_HostC_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <WITNESS_HostC_cert>
       AUTHORIZATION <WITNESS_HostC_user>
       FROM FILE = '<c:\WITNESS_HostC_cert.cer>' --do not try to use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<WITNESS_HostC_login>];
    GO
    
  6. Fügen Sie auf dem Prinzipalserver den Zeugenserver an. In diesem Beispiel wird die Konfigurationsdatenbank verwendet. Wiederholen Sie die Aktionen für alle Datenbanken.

    --Setup the Witness Server
    ALTER DATABASE SharePoint_Config
        SET WITNESS = 
        '<TCP://databasewitness.adatum.com:5024>'
    GO
    

Übertragen der Berechtigungen auf den Spiegelserver

Beim Einrichten einer gespiegelten Datenbank werden die SQL Server-Anmeldungen und -Berechtigungen für die Datenbank, die für eine SharePoint-Farm verwendet werden soll, nicht automatisch in den Master- und MSDB-Datenbanken auf dem Spiegelserver konfiguriert. Stattdessen müssen Sie die Berechtigungen für die erforderlichen Anmeldungen konfigurieren.

Es wird empfohlen, die Anmeldungen und Berechtigungen durch Ausführen eines Skripts vom Prinzipalserver auf den Spiegelserver zu übertragen. Das hierfür empfohlene Skript ist in Knowledge Base-Artikel 918992, Übertragen von Benutzernamen und Kennwörtern zwischen Instanzen von SQL Server 2005 (https://go.microsoft.com/fwlink/?linkid=122053&clcid=0x407) verfügbar.

Überwachen des Spiegelungsstatus

Auf dem Zeugenserver können Sie den aktuellen Spiegelungsstatus mit der folgenden Transact-SQL-Anweisung überwachen.

SELECT mirroring_role FROM sys.database_mirroring WHERE mirroring_role is not null --If returns a 1, principal, if 2: mirror

Möglicherweise möchten Sie eine Reihe von SQL Server-Aufträgen und -Warnungen erstellen, um den Prinzipalserver zu ermitteln, oder einen Windows-Dienst erstellen, durch den dieser Befehl ausgeführt wird, um den Prinzipalserver zu ermitteln.

Weitere Schritte

Wenn Sie die Spiegelung konfiguriert haben, müssen Sie die Skripts erstellen, mit denen Sie einen Failover für die Datenbanken in der Farm ausführen können. Weitere Informationen finden Sie unter Failover und Wiederherstellen von gespiegelten Datenbanken in einer einzelnen Farm.

SELECT mirroring_role FROM sys.database_mirroring WHERE mirroring_role is not null --If returns a 1, principal, if 2: mirror

Möglicherweise möchten Sie eine Reihe von SQL Server-Aufträgen und -Warnungen erstellen, um den Prinzipalserver zu ermitteln, oder einen Windows-Dienst erstellen, durch den dieser Befehl ausgeführt wird, um den Prinzipalserver zu ermitteln.

Siehe auch

Weitere Ressourcen

Datenbankspiegelung in SQL Server 2005 (in englischer Sprache)