Beispielskript zum Konfigurieren der SQL Server-Spiegelung (SharePoint Foundation 2010)

 

Gilt für: SharePoint Foundation 2010

Letztes Änderungsdatum des Themas: 2016-11-30

Dieser Artikel enthält eine Reihe von Beispielskripts, mit denen Sie Microsoft SQL Server-Spiegelung für eine Microsoft SharePoint Foundation 2010-Testumgebung einrichten können. Es wird empfohlen, die Spiegelung für eine Produktionsumgebung von einem SQL Server-Datenbankadministrator konfigurieren zu lassen.

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

Inhalt dieses Artikels

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

  • Ein oder mehrere Front-End-Webserver

  • Drei Server, auf denen SQL Server 2008 ausgeführt wird: Prinzipalserver, Spiegelserver und Zeugenserver

  • Eine (1) Konfigurationsdatenbank

  • Mehrere Inhaltsdatenbanken

  • Eine oder mehrere Dienstanwendungsdatenbanken

Konfigurieren der Datenbankspiegelung mit Zertifikaten und vollständiger Wiederherstellung

Für jeden Schritt wird der Server angegeben, auf dem der Schritt ausgeführt werden soll. Senden Sie diese Befehle mit Transact-SQL an SQL Server. Platzhalterangaben sind durch spitze Klammern (<>) gekennzeichnet; ersetzen Sie diese durch die entsprechenden Informationen für Ihre Bereitstellung.

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 auf dem Prinzipalserver das Zertifikat.

    --Back up the HOST_A certificate.
    BACKUP CERTIFICATE MASTER_HostA_cert TO FILE = '<c:\MASTER_HostA_cert.cer>';
    GO
    
  3. Sichern Sie auf dem Prinzipalserver die Datenbank. 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 beliebigen 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 der Anmeldung Berechtigungen zum Herstellen von Verbindungen 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 auf dem Spiegelserver das Zertifikat.

    --Back up the HOST_B certificate.
    BACKUP CERTIFICATE <HOST_HostB> TO FILE = '<C:\HOST_HostB_cert.cer>';
    GO 
    
  3. Kopieren Sie mithilfe einer beliebigen 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 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 das Zertifikat dem Benutzer zu, und erteilen Sie der Anmeldung Berechtigungen zum Herstellen von Verbindungen 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 das Zertifikat dem Benutzer zu, und erteilen Sie der Anmeldung Berechtigungen zum Herstellen von Verbindungen 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 auf dem Prinzipalserver die Spiegelungspartnerschaft 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 auf dem Spiegelungsserver die Spiegelungspartnerschaft 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 angegeben, auf dem der Schritt ausgeführt werden soll. Senden Sie diese Befehle mit Transact-SQL an SQL Server. Platzhalterangaben sind durch spitze Klammern (<>) gekennzeichnet; ersetzen Sie diese durch die entsprechenden Informationen für Ihre Bereitstellung.

  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 auf dem Zeugenserver das Zertifikat.

    --Back up the HOST_C certificate 
    BACKUP CERTIFICATE <WITNESS_HostC_cert> TO FILE = '<c:\ WITNESS_HostC_cert.cer>';
    GO
    
  3. Kopieren Sie mit einer beliebigen 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 Prinzipal- und den Spiegelserver, ordnen Sie die Zertifikate den Benutzern zu, und erteilen Sie den Anmeldungen Berechtigungen zum Herstellen von Verbindungen 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 das Zertifikat dem Benutzer zu, und erteilen Sie der Anmeldung Berechtigungen zum Herstellen von Verbindungen für die Partnerschaft. Wiederholen Sie diesen Schritt 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

Wenn Sie eine gespiegelte Datenbank einrichten, werden die SQL Server-Anmeldungen und -Berechtigungen für die Datenbank, die mit einer SharePoint-Farm verwendet werden, nicht automatisch in den master- und msdb-Datenbanken auf dem Spiegelserver konfiguriert. Vielmehr müssen Sie die Berechtigungen für die erforderlichen Anmeldungen konfigurieren.

Wir empfehlen, die Anmeldungen und Berechtigungen durch Ausführen eines Skripts vom Prinzipalserver auf den Spiegelserver zu übertragen. 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 dazu, wie Sie die Spiegelung von einem Server entfernen, finden Sie unter Vorgehensweise: Entfernen der Datenbankspiegelung (Transact-SQL) (https://go.microsoft.com/fwlink/?linkid=185070&clcid=0x407).