Beispiel: Einrichten der Datenbankspiegelung mithilfe der Windows-Authentifizierung (Transact-SQL)

In diesem Beispiel werden sämtliche Schritte erläutert, die für die Erstellung einer Datenbank-Spiegelungssitzung mit einem Zeugen mithilfe der Windows-Authentifizierung erforderlich sind. In den Beispielen in diesem Thema wird Transact-SQL verwendet. Beachten Sie Folgendes: Anstelle der Transact-SQL-Schritte können Sie für die Einrichtung von Datenbankspiegelungen den Assistenten zum Konfigurieren der Sicherheit für die Datenbankspiegelung verwenden. Weitere Informationen finden Sie unter Verwalten der Datenbankspiegelung (SQL Server Management Studio).

Voraussetzungen für dieses Beispiel

Wichtiger HinweisWichtig

Es empfiehlt sich, vor dem Lesen des Themas Vorgehensweise: Einrichten einer Datenbank-Spiegelungssitzung mithilfe der Windows-Authentifizierung (Transact-SQL) zunächst den Abschnitt "Vorbereitungen" zu lesen.

In diesem Beispiel wird die AdventureWorks2008R2-Beispieldatenbank verwendet, in der standardmäßig das einfache Wiederherstellungsmodell verwendet wird. Um diese Datenbank für die Datenbankspiegelung verwenden zu können, muss sie dahin gehend geändert werden, dass das vollständige Wiederherstellungsmodell verwendet wird. Verwenden Sie zu diesem Zweck in Transact-SQL die ALTER DATABASE-Anweisung wie folgt:

USE master;
GO
ALTER DATABASE AdventureWorks2008R2 
SET RECOVERY FULL;
GO

Weitere Informationen zum Ändern des Wiederherstellungsmodells in SQL Server Management Studio finden Sie unter Vorgehensweise: Anzeigen oder Ändern eines Wiederherstellungsmodells einer Datenbank (SQL Server Management Studio).

Berechtigungen

Erfordert die CREATE ENDPOINT-Berechtigung oder die Mitgliedschaft in der festen Serverrolle sysadmin. Erfordert die ALTER-Berechtigung für die Datenbank.

Beispiel

In diesem Beispiel sind die beiden Partner und der Zeuge die standardmäßigen Serverinstanzen auf drei Computersystemen. Von den drei Serverinstanzen wird dieselbe Windows-Domäne ausgeführt, das Benutzerkonto für die Zeugenserverinstanz im Beispiel weicht jedoch ab.

In der folgenden Tabelle finden Sie eine Zusammenfassung der in diesem Beispiel verwendeten Werte.

Rolle bei der ersten Spiegelung

Hostsystem

Domänenbenutzerkonto

Prinzipal

PARTNERHOST1

<Mydomain>\<dbousername>

Spiegelung

PARTNERHOST5

<Mydomain>\<dbousername>

Zeuge

WITNESSHOST4

<Somedomain>\<witnessuser>

  1. Erstellen Sie einen Endpunkt auf der Prinzipalserverinstanz (Standardinstanz auf PARTNERHOST1).

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=PARTNER);
    GO
    --Partners under same domain user; login already exists in master.
    --Create a login for the witness server instance,
    --which is running as Somedomain\witnessuser:
    USE master ;
    GO
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;
    GO
    -- Grant connect permissions on endpoint to login account of witness.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];
    --Grant connect permissions on endpoint to login account of partners.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];
    GO
    
  2. Erstellen Sie einen Endpunkt auf der Spiegelserverinstanz (Standardinstanz auf PARTNERHOST5).

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=ALL);
    GO
    --Partners under same domain user; login already exists in master.
    --Create a login for the witness server instance,
    --which is running as Somedomain\witnessuser:
    USE master ;
    GO
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;
    GO
    --Grant connect permissions on endpoint to login account of witness.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];
    --Grant connect permissions on endpoint to login account of partners.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];
    GO
    
  3. Erstellen Sie einen Endpunkt auf der Zeugenserverinstanz (Standardinstanz auf WITNESSHOST4).

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=WITNESS)
    GO
    --Create a login for the partner server instances,
    --which are both running as Mydomain\dbousername:
    USE master ;
    GO
    CREATE LOGIN [Mydomain\dbousername] FROM WINDOWS ;
    GO
    --Grant connect permissions on endpoint to login account of partners.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];
    GO
    
  4. Erstellen Sie die Spiegeldatenbank. Weitere Informationen finden Sie unter Vorgehensweise: Vorbereiten einer Spiegeldatenbank für die Spiegelung (Transact-SQL).

  5. Legen Sie auf der Spiegelserverinstanz auf PARTNERHOST5 die Serverinstanz auf PARTNERHOST1 als Partner fest (hierdurch wird sie zur ersten Prinzipalserverinstanz).

    ALTER DATABASE AdventureWorks2008R2 
        SET PARTNER = 
        'TCP://PARTNERHOST1.COM:7022';
    GO
    
  6. Legen Sie auf der Prinzipalserverinstanz auf PARTNERHOST1 die Serverinstanz auf PARTNERHOST5 als Partner fest (hierdurch wird sie zur ersten Spiegelserverinstanz).

    ALTER DATABASE AdventureWorks2008R2 
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022';
    GO
    
  7. Legen Sie auf dem Prinzipalserver den Zeugen fest (der sich auf WITNESSHOST4 befindet).

    ALTER DATABASE AdventureWorks2008R2 
        SET WITNESS = 
        'TCP://WITNESSHOST4.COM:7022';
    GO