Freigeben über


Einrichten einer Datenbankspiegelungssitzung mithilfe der Windows-Authentifizierung (Transact-SQL)

Hinweis

Dieses Feature wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Vermeiden Sie die Verwendung dieses Features in neuer Entwicklungsarbeit, und planen Sie, Anwendungen zu ändern, die derzeit dieses Feature verwenden. Verwenden Sie stattdessen Always On Verfügbarkeitsgruppen.

Nachdem die Spiegeldatenbank vorbereitet wurde (siehe Vorbereiten einer Spiegeldatenbank für Spiegelung (SQL Server)), können Sie eine Datenbankspiegelungssitzung einrichten. Die Haupt-, Spiegel- und Zeugenserverinstanzen müssen separate Serverinstanzen sein, die sich auf separaten Hostsystemen befinden sollten.

Von Bedeutung

Es wird empfohlen, die Datenbankspiegelung während der Nebenzeiten zu konfigurieren, da sich die Konfiguration der Spiegelung auf die Leistung auswirken kann.

Hinweis

Eine bestimmte Serverinstanz kann an mehreren gleichzeitigen Datenbankspiegelungssitzungen mit denselben oder verschiedenen Partnern teilnehmen. Eine Serverinstanz kann ein Partner in einigen Sitzungen und ein Zeuge in anderen Sitzungen sein. Die Spiegelserverinstanz muss dieselbe Edition von SQL Server wie die Prinzipalserverinstanz ausführen. Die Datenbankspiegelung ist in jeder Edition von MicrosoftSQL Server nicht verfügbar. Eine Liste der Features, die von den Editionen von SQL Server unterstützt werden, finden Sie unter Features, die von den Editionen von SQL Server 2014 unterstützt werden. Außerdem wird dringend empfohlen, dass sie auf vergleichbaren Systemen ausgeführt werden, die identische Workloads verarbeiten können.

So richten Sie eine Datenbankspiegelungssitzung ein

  1. Erstellen Sie die Spiegeldatenbank. Weitere Informationen finden Sie unter Vorbereiten einer Spiegeldatenbank auf die Spiegelung (SQL Server).

  2. Richten Sie Sicherheit für jede Serverinstanz ein.

    Jede Serverinstanz in einer Datenbankspiegelungssitzung erfordert einen Datenbankspiegelungsendpunkt. Wenn der Endpunkt nicht vorhanden ist, müssen Sie ihn erstellen.

    Hinweis

    Die Form der Authentifizierung, die für die Datenbankspiegelung durch eine Serverinstanz verwendet wird, ist eine Eigenschaft des Endpunkts für die Datenbankspiegelung. Für die Datenbankspiegelung stehen zwei Arten von Transportsicherheit zur Verfügung: Windows-Authentifizierung oder zertifikatbasierte Authentifizierung. Weitere Informationen finden Sie unter Transportsicherheit für Datenbankspiegelung und AlwaysOn-Verfügbarkeitsgruppen (SQL Server).

    Stellen Sie auf jedem Partnerserver sicher, dass ein Endpunkt für die Datenbankspiegelung vorhanden ist. Unabhängig von der Anzahl der zu unterstützenden Spiegelungssitzungen kann die Serverinstanz nur einen Datenbankspiegelungsendpunkt haben. Wenn Sie diese Serverinstanz ausschließlich für Partner in Datenbankspiegelungssitzungen verwenden möchten, können Sie die Rolle des Partners dem Endpunkt zuweisen (ROLE**=**PARTNER). Wenn Sie diesen Server auch für den Zeugen in anderen Datenbankspiegelungssitzungen verwenden möchten, weisen Sie die Rolle des Endpunkts als ALL zu.

    Um eine SET PARTNER-Anweisung auszuführen, muss der STATUS der Endpunkte beider Partner auf "GESTARTET" festgelegt sein.

    Um zu erfahren, ob eine Serverinstanz über einen Datenbankspiegelungsendpunkt verfügt, und um ihre Rolle und ihren Status in dieser Instanz zu erlernen, verwenden Sie die folgende Transact-SQL-Anweisung:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints  
    

    Von Bedeutung

    Konfigurieren Sie keinen in Gebrauch befindlichen Datenbankspiegelungsendpunkt neu. Wenn ein Datenbankspiegelungsendpunkt vorhanden ist und bereits verwendet wird, empfehlen wir, diesen Endpunkt für jede Sitzung auf der Serverinstanz zu verwenden. Das Ablegen eines nicht verwendeten Endpunkts kann dazu führen, dass der Endpunkt neu gestartet wird, wodurch die Verbindungen der vorhandenen Sitzungen unterbrochen werden, was scheinbar ein Fehler bei den anderen Serverinstanzen sein kann. Dies ist besonders wichtig im Hochsicherheitsmodus mit automatischem Failover, bei dem die Neukonfiguration des Endpunkts auf einem Partner dazu führen kann, dass ein Failover auftritt. Falls ein Zeuge für eine Sitzung festgelegt wurde, kann das Entfernen des Endpunkts der Datenbankspiegelung dazu führen, dass der Hauptserver dieser Sitzung das Quorum verliert; tritt dies ein, geht die Datenbank offline und die Benutzer werden getrennt. Weitere Informationen finden Sie unter Quorum: Auswirkungen eines Zeugen auf die Datenbankverfügbarkeit (Datenbankspiegelung).

    Wenn einer der beiden Partner einen Endpunkt fehlt, siehe "Erstellen eines Datenbankspiegelungsendpunkts für Windows-Authentifizierung (Transact-SQL)".

  3. Wenn Serverinstanzen unter unterschiedlichen Domänenbenutzerkonten ausgeführt werden, erfordert jedes eine Anmeldung in der Masterdatenbank der anderen. Wenn die Anmeldung nicht vorhanden ist, müssen Sie sie erstellen. Weitere Informationen finden Sie unter Zulassen des Netzwerkzugriffs auf einen Datenbankspiegelungs-Endpunkt mit Windows-Authentifizierung (SQL Server).

  4. Um den Prinzipalserver als Partner in der Spiegeldatenbank festzulegen, stellen Sie eine Verbindung mit dem Spiegelserver her, und geben Sie die folgende Anweisung aus:

    ALTER DATABASE <database_name> SET PARTNER =<server_network_address>

    dabei <ist database_name> der Name der Datenbank, die gespiegelt werden soll (dieser Name ist für beide Partner identisch), und <server_network_address> die Servernetzwerkadresse des Prinzipalservers ist.

    Die Syntax für eine Servernetzwerkadresse lautet wie folgt:

    TCP://<system-address>:<port>

    Bei <Systemadresse> handelt es sich um eine Zeichenfolge, die das Zielcomputersystem eindeutig identifiziert, und <Port> ist die Portnummer, die vom Spiegelendpunkt der Partnerserverinstanz verwendet wird. Weitere Informationen finden Sie unter Angeben einer Servernetzwerkadresse (Datenbankspiegelung).

    Beispielsweise legt die folgende ALTER DATABASE-Anweisung auf der Spiegelserverinstanz den Partner als ursprüngliche Prinzipalserverinstanz fest. Der Datenbankname ist AdventureWorks, die Systemadresse ist DBSERVER1-Name des Systems des Partners und der vom Datenbankspiegelungsendpunkt des Partners verwendete Port lautet 7022:

    ALTER DATABASE AdventureWorks   
       SET PARTNER = 'TCP://DBSERVER1:7022'  
    

    Diese Anweisung bereitet den Spiegelserver so vor, dass er eine Sitzung bildet, wenn er vom Prinzipalserver kontaktiert wird.

  5. Um den Spiegelserver als Partner in der Prinzipaldatenbank festzulegen, stellen Sie eine Verbindung mit dem Prinzipalserver her, und geben Sie die folgende Anweisung aus:

    ALTER DATABASE <database_name> SET PARTNER =<server_network_address> FESTLEGEN

    Weitere Informationen finden Sie in Schritt 4.

    Beispielsweise legt die folgende ALTER DATABASE-Anweisung in der Prinzipalserverinstanz den Partner als ursprüngliche Spiegelserverinstanz fest. Der Datenbankname ist AdventureWorks, die Systemadresse ist DBSERVER2-name des Systems des Partners und der port, der vom Datenbankspiegelungsendpunkt des Partners verwendet wird, lautet 7025:

    ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER2:7022'  
    

    Wenn Sie diese Anweisung auf dem Hauptserver eingeben, beginnt die Datenbankspiegelung.

  6. Standardmäßig ist eine Sitzung auf vollständige Transaktionssicherheit festgelegt (SAFETY ist auf FULL festgelegt), wodurch die Sitzung im synchronen Hochsicherheitsmodus ohne automatisches Failover gestartet wird. Sie können die Sitzung so konfigurieren, dass sie im Hochsicherheitsmodus mit automatischem Failover oder im asynchronen Hochleistungsmodus wie folgt ausgeführt wird:

Beispiel

Hinweis

Im folgenden Beispiel wird eine Datenbankspiegelungssitzung zwischen Partnern für eine vorhandene Spiegeldatenbank eingerichtet. Informationen zum Erstellen einer Spiegeldatenbank finden Sie unter Vorbereiten einer Spiegeldatenbank für Spiegelung (SQL Server)=.

Das Beispiel zeigt die grundlegenden Schritte zum Erstellen einer Datenbankspiegelungssitzung ohne Zeugen. Die beiden Partner sind die Standardserverinstanzen auf zwei Computersystemen (PARTNERHOST1 und PARTNERHOST5). Die beiden Partnerinstanzen führen dasselbe Windows-Domänenbenutzerkonto (MYDOMAIN\dbousername) aus.

  1. Erstellen Sie auf der Prinzipalserverinstanz (Standardinstanz auf PARTNERHOST1) einen Endpunkt, der alle Rollen mit Port 7022 unterstützt:

    --create an endpoint for this instance  
    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.  
    

    Hinweis

    Ein Beispiel für das Einrichten einer Anmeldung finden Sie unter Allow Network Access to a Database Mirroring Endpoint Using Windows Authentication (SQL Server).

  2. Erstellen Sie auf der Spiegelserverinstanz (Standardinstanz auf PARTNERHOST5) einen Endpunkt, der alle Rollen mit Port 7022 unterstützt:

    --create an endpoint for this instance  
    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.  
    
  3. Sichern Sie die Datenbank auf der Prinzipalserverinstanz (auf PARTNERHOST1):

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdvWorks_dbmirror.bak'   
        WITH FORMAT  
    GO  
    
  4. Stellen Sie auf der Spiegelserver-Instanz (PARTNERHOST5) die Datenbank wieder her.

    RESTORE DATABASE AdventureWorks   
        FROM DISK = 'Z:\AdvWorks_dbmirror.bak'   
        WITH NORECOVERY  
    GO  
    
  5. Nachdem Sie die vollständige Datenbanksicherung erstellt haben, müssen Sie eine Protokollsicherung für die Prinzipaldatenbank erstellen. Zum Beispiel wird in der folgenden Transact-SQL-Anweisung das Protokoll in derselben Datei gesichert, die zuvor für die Datenbanksicherung verwendet wurde.

    BACKUP LOG AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
    GO  
    
  6. Bevor Sie mit der Spiegelung beginnen können, müssen Sie die erforderliche Protokollsicherung (und alle nachfolgenden Protokollsicherungen) anwenden.

    Die folgende Transact-SQL-Anweisung stellt beispielsweise das erste Protokoll aus C:\AdventureWorks.bak wieder her:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\ AdventureWorks.bak'   
        WITH FILE=1, NORECOVERY  
    GO  
    
  7. Legen Sie auf der Spiegelserverinstanz die Serverinstanz auf PARTNERHOST1 als Partner fest (wodurch sie zum ersten Prinzipalserver wird):

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1:7022'  
    GO  
    

    Von Bedeutung

    Standardmäßig wird eine Datenbankspiegelungssitzung im synchronen Modus ausgeführt, was davon abhängt, dass die Transaktionssicherheit vollständig ist (SAFETY ist auf FULL festgelegt). Damit eine Sitzung im asynchronen Hochleistungsmodus ausgeführt wird, legen Sie SAFETY auf OFF fest. Weitere Informationen finden Sie unter Betriebsmodi für die Datenbankspiegelung.

  8. Legen Sie auf der Prinzipalserverinstanz die Serverinstanz PARTNERHOST5 als Partner fest (wodurch sie zum ursprünglichen Spiegelserver wird):

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5:7022'  
    GO  
    
  9. Wenn Sie optional den Hochsicherheitsmodus mit automatischem Failover verwenden möchten, richten Sie die Zeugenserverinstanz ein. Weitere Informationen finden Sie unter Hinzufügen eines Datenbankspiegelungszeugen mithilfe der Windows-Authentifizierung (Transact-SQL).

Hinweis

Ein vollständiges Beispiel für die Sicherheitseinrichtung, das Vorbereiten der Spiegeldatenbank, das Einrichten der Partner und das Hinzufügen eines Zeugen finden Sie unter Einrichten der Datenbankspiegelung (SQL Server).

Siehe auch

Einrichten der Datenbankspiegelung (SQL Server)
ALTER DATABASE (Transact-SQL)
Zulassen des Netzwerkzugriffs auf einen Datenbankspiegelungsendpunkt mithilfe der Windows-Authentifizierung (SQL Server)
Vorbereiten einer Spiegeldatenbank für die Spiegelung (SQL Server)
Erstellen eines Endpunkts der Datenbankspiegelung für Windows-Authentifizierung (Transact-SQL)
Datenbankspiegelung und Protokollversand (SQL Server)
Datenbankspiegelung (SQL Server)
Datenbankspiegelung und Replikation (SQL Server)
Einrichten der Datenbankspiegelung (SQL Server)
Angeben einer Servernetzwerkadresse (Datenbankspiegelung)
Betriebsmodi für Datenbankspiegelung