Beispielskript zum Konfigurieren der SQL Server-Datenbankspiegelung (SharePoint Server 2010)

 

Gilt für: SharePoint Foundation 2010, SharePoint Server 2010

Letztes Änderungsdatum des Themas: 2016-11-30

Dieser Artikel enthält eine Reihe von Beispielskripts, die Sie zum Einrichten der Microsoft SQL Server-Spiegelung für eine Microsoft SharePoint Server 2010-Testumgebung verwenden können. In einer Produktionsumgebung sollte die Spiegelung von einem SQL Server-Datenbankadministrator konfiguriert werden.

Zum Einrichten der Datenbankspiegelung mit SharePoint Server 2010 müssen Sie mit jeder zu spiegelnden Datenbank einzeln arbeiten.

Inhalt dieses Artikels

Die Schritte im folgenden Abschnitt gelten für die folgende Serverfarmtopologie:

  • Mindestens ein Front-End-Webserver

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

  • Eine Konfigurationsdatenbank

  • Mehrere Inhaltsdatenbanken

  • Mindestens eine Dienstanwendungsdatenbank

Konfigurieren der Datenbankspiegelung mit Zertifikaten und vollständiger Wiederherstellung

Für jeden Schritt wird der Server genannt, auf dem der Schritt ausgeführt werden muss. Verwenden Sie Transact-SQL, um diese Befehle an SQL Server zu senden. Platzhalterinformationen sind durch spitze Klammern (<>) gekennzeichnet; ersetzen Sie diese Informationen durch bereitstellungsspezifische Angaben.

So richten Sie den Prinzipalserver für ausgehende Verbindungen ein

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

    --On the 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 a mirroring endpoint for server instance by 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 the 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 diesen Schritt 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 diesen Schritt für alle Datenbanken.

  5. Kopieren Sie mithilfe einer sicheren Kopiermethode die Sicherungszertifikatdatei (z. B. 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 dem Benutzer das Zertifikat zu, und erteilen Sie der Anmeldung Verbindungsberechtigungen für die Partnerschaft.

    --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 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
    

So richten Sie den Spiegelserver für ausgehende Verbindungen ein

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

    --On the 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 the HOST_B certificate.
    BACKUP CERTIFICATE <HOST_HostB> TO FILE = '<C:\HOST_HostB_cert.cer>';
    GO 
    
  3. Kopieren Sie mithilfe einer sicheren Kopiermethode die Sicherungszertifikatdatei (z. B. C:\HOST_HostB_cert.cer) auf den Prinzipalserver.

  4. Stellen Sie die Datenbank auf dem Spiegelserver aus den Sicherungsdateien wieder her. In diesem Beispiel wird die Konfigurationsdatenbank verwendet. Wiederholen Sie diesen Schritt 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
    

So richten Sie den Spiegelserver für eingehende Verbindungen ein

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

    --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 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
    

So richten Sie den Prinzipalserver für eingehende Verbindungen ein

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

    --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 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
    

So richten Sie die Spiegelungspartner ein

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

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

    --At HOST_B, set the server instance on HOST_A as a 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, auf dem der Schritt ausgeführt werden muss. Verwenden Sie Transact-SQL, um diese Befehle an SQL Server zu senden. Platzhalterinformationen sind durch spitze Klammern (<>) gekennzeichnet; ersetzen Sie diese Informationen durch bereitstellungsspezifische Angaben.

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

    --On the 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 a mirroring endpoint for server instance by 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 Zeugenserver.

    --Back up the 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 (z. B. C:\WITNESS_HOSTC_cert.cer) auf den Prinzipalserver und auf den Spiegelserver.

  4. Erstellen Sie auf dem Zeugenserver Anmeldungen und Benutzer für den Prinzipalserver und den Spiegelserver, ordnen Sie den Benutzern die Zertifikate zu, und erteilen Sie den Anmeldungen Verbindungsberechtigungen für die Partnerschaft.

    --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 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 a login for the 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 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 dem Benutzer das Zertifikat zu, und erteilen Sie der Anmeldung Verbindungsberechtigungen für die Partnerschaft. Wiederholen Sie diese Schritte 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 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 diesen Schritt für alle Datenbanken.

    --Set up the witness server
    ALTER DATABASE SharePoint_Config
        SET WITNESS = 
        '<TCP://databasewitness.adatum.com:5024>'
    GO
    

Übertragen von 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 wird, nicht automatisch in der master-Datenbank und der MSDB-Datenbank auf dem Spiegelserver konfiguriert. Stattdessen müssen Sie die Berechtigungen für die erforderlichen Anmeldungen konfigurieren.

Es wird empfohlen, Anmeldungen und Berechtigungen vom Prinzipalserver auf den Spiegelserver zu übertragen, indem Sie ein Skript ausführen. Das empfohlene Skript steht unter 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) zur Verfügung.

Entfernen der Spiegelung von einem Server

Informationen zum Entfernen der Spiegelung von einem Server finden Sie unter Vorgehensweise: Entfernen der Datenbankspiegelung (Transact-SQL) (https://go.microsoft.com/fwlink/?linkid=185070&clcid=0x407).