Einrichten einer Datenbank-Spiegelungssitzung mithilfe der Windows-Authentifizierung (Transact-SQL)

HinweisHinweis

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen AlwaysOn-Verfügbarkeitsgruppen.

Nachdem Sie die Spiegeldatenbank vorbereitet haben (siehe Vorbereiten einer Spiegeldatenbank auf die Spiegelung (SQL Server)), können Sie die Datenbank-Spiegelungssitzung einrichten. Die Prinzipal-, Spiegel- und Zeugenserverinstanzen müssen separate Serverinstanzen sein, die auf getrennten Hostsystemen ausgeführt werden.

Wichtiger HinweisWichtig

Die Konfiguration der Datenbankspiegelung sollte außerhalb der Spitzenbetriebszeiten durchgeführt werden, da sich die Konfiguration der Spiegelung auf die Leistung auswirken kann.

HinweisHinweis

Eine Serverinstanz kann an mehreren gleichzeitigen Datenbank-Spiegelungssitzungen mit den gleichen oder anderen Partnern teilnehmen. Eine Serverinstanz kann bei manchen Sitzungen als Partner und bei anderen Sitzungen als Zeuge dienen. Auf der Spiegelserverinstanz muss dieselbe Edition von SQL Server wie auf der Prinzipalserverinstanz ausgeführt werden. Die Datenbankspiegelung ist nicht in jeder Edition von Microsoft SQL Server verfügbar. Eine Liste der Funktionen, die von den Editionen von SQL Server unterstützt werden, finden Sie unter Von den SQL Server 2012-Editionen unterstützte Funktionen. Darüber hinaus wird die Ausführung auf vergleichbaren Systemen empfohlen, die identische Arbeitsauslastungen bewältigen können.

So richten Sie eine Datenbank-Spiegelungssitzung ein

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

  2. Richten Sie die Sicherheit auf jeder Serverinstanz ein.

    Jede Serverinstanz in einer Datenbank-Spiegelungssitzung benötigt einen eigenen Datenbank-Spiegelungsendpunkt. Falls der Endpunkt nicht vorhanden ist, müssen Sie ihn erstellen.

    HinweisHinweis

    Der für die Datenbankspiegelung von einer Serverinstanz verwendete Authentifizierungstyp ist eine Eigenschaft des Endpunkts der Datenbankspiegelung. Für die Datenbankspiegelung sind zwei Arten von Transportsicherheit verfügbar: die Windows-Authentifizierung oder die zertifikatbasierte Authentifizierung. Weitere Informationen finden Sie unter Transportsicherheit für Datenbankspiegelung und AlwaysOn-Verfügbarkeitsgruppen (SQL Server).

    Stellen Sie sicher, dass auf allen Partnerservern ein Endpunkt für die Datenbankspiegelung vorhanden ist. Unabhängig von der Anzahl der zu unterstützenden Spiegelungssitzungen darf die Serverinstanz nur einen Endpunkt für die Datenbankspiegelung enthalten. Wenn Sie die Serverinstanz in Datenbank-Spiegelungssitzungen ausschließlich für Partner verwenden möchten, können Sie dem Endpunkt die Rolle Partner zuweisen (ROLE**=**PARTNER) zuweisen. Wenn Sie auch den Server in anderen Datenbank-Spiegelungssitzungen für Zeugen verwenden möchten, weisen Sie dem Endpunkt die Rolle ALL zu.

    Zum Ausführen der SET PARTNER-Anweisung muss die Option STATE der Endpunkte beider Partner auf STARTED festgelegt sein.

    Um zu erfahren, ob eine Serverinstanz einen Endpunkt für die Datenbankspiegelung besitzt, und um Informationen zu Rolle und Status der Serverinstanz zu erhalten, führen Sie auf der Instanz die folgende Transact-SQL-Anweisung aus:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    
    Wichtiger HinweisWichtig

    Ein bereits verwendeter Endpunkt für die Datenbankspiegelung darf nicht neu konfiguriert werden. Wenn ein Endpunkt für die Datenbankspiegelung vorhanden ist und bereits verwendet wird, sollte dieser Endpunkt auf der Serverinstanz für jede Sitzung verwendet werden. Wird ein bereits verwendeter Endpunkt gelöscht, kann dies zum erneuten Starten des Endpunkts führen, wodurch die Verbindungen der vorhandenen Sitzungen gestört werden, was von den anderen Serverinstanzen als Fehler interpretiert werden kann. Dies ist vor allem im Modus für hohe Sicherheit mit automatischem Failover wichtig, bei dem das Neukonfigurieren des Endpunkts auf einem Partner zur Ausführung eines Failovers führen könnte. Wenn für eine Sitzung zudem ein Zeuge festgelegt wurde, kann das Entfernen des Endpunkts für die Datenbankspiegelung dazu führen, dass der Prinzipalserver der Sitzung das Quorum verliert. In diesem Fall wird die Datenbank offline gebracht und die Verbindung mit den Benutzern getrennt. Weitere Informationen finden Sie unter Quorum: Auswirkungen eines Zeugen auf die Datenbankverfügbarkeit (Datenbankspiegelung).

    In dem Fall, dass keiner der Partner einen Endpunkt besitzt, finden Sie weitere Informationen unter Erstellen eines Endpunkts der Datenbankspiegelung für Windows-Authentifizierung (Transact-SQL).

  3. Wenn Serverinstanzen unter unterschiedlichen Domänenbenutzerkonten ausgeführt werden, erfordert jede Instanz einen Anmeldenamen in der master-Datenbank der anderen Instanzen. Falls der Anmeldename nicht vorhanden ist, müssen Sie ihn erstellen. Weitere Informationen finden Sie unter Zulassen des Netzwerkzugriffs auf einen Datenbank-Spiegelungsendpunkt mithilfe der Windows-Authentifizierung (SQL Server).

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

    ALTER DATABASE <database_name> SET PARTNER = <server_network_address>

    Dabei ist <database_name> der Name der zu spiegelnden Datenbank (dieser Name ist auf beiden Partnern gleich) und <server_network_address> die Servernetzwerkadresse des Prinzipalservers.

    Die Syntax für eine Server-Netzwerkadresse lautet folgendermaßen:

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

    Dabei ist <system-address> eine Zeichenfolge, die das Zielcomputersystem eindeutig identifiziert, und <port> ist die vom Spiegelungsendpunkt der Partnerserverinstanz verwendete Portnummer. Weitere Informationen finden Sie unter Angeben einer Servernetzwerkadresse (Datenbankspiegelung).

    Auf der Spiegelserverinstanz wird z. B. mit der folgenden ALTER DATABASE-Anweisung der Partner als ursprüngliche Prinzipalserverinstanz festgelegt. Der Datenbankname lautet AdventureWorks, die Systemadresse ist DBSERVER1 - der Name des Partnersystems - und der vom Endpunkt für die Datenbankspiegelung des Partners verwendete Port ist 7022:

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

    Diese Anweisung bereitet den Spiegelserver darauf vor, eine Sitzung einzurichten, wenn er durch den Prinzipalserver kontaktiert wird.

  5. Um den Spiegelserver als Partner auf 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>

    Weitere Informationen finden Sie unter Schritt 4.

    Auf der Prinzipalserverinstanz wird z. B. mit der folgenden ALTER DATABASE-Anweisung der Partner als ursprüngliche Spiegelserverinstanz festgelegt. Der Datenbankname lautet AdventureWorks, die Systemadresse ist DBSERVER2 (der Name des Partnersystems), und der Spiegelungsendpunkt der Partnerdatenbank verwendet den Port 7025:

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

    Durch Eingeben dieser Anweisung auf dem Prinzipalserver beginnt die Datenbankspiegelungssitzung.

  6. Standardmäßig ist für eine Sitzung die Transaktionssicherheitsstufe FULL festgelegt (SAFETY ist auf FULL festgelegt), wodurch die Sitzung im synchronen Modus für hohe Sicherheit ohne automatisches Failover gestartet wird. Sie können die Sitzung wie folgt umkonfigurieren, sodass sie entweder im Modus für hohe Sicherheit mit automatischem Failover oder im asynchronen Modus für hohe Leistung ausgeführt wird:

Beispiel

HinweisHinweis

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

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

  1. Auf der Prinzipalserverinstanz (Standardinstanz auf PARTNERHOST1) erstellen Sie einen Endpunkt, der mithilfe von Port 7022 alle Rollen 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.
    
    HinweisHinweis

    Ein Beispiel zum Einrichten einer Anmeldung finden Sie unter Zulassen des Netzwerkzugriffs auf einen Datenbank-Spiegelungsendpunkt mithilfe der Windows-Authentifizierung (SQL Server).

  2. Auf der Spiegelserverinstanz (Standardinstanz auf PARTNERHOST5) erstellen Sie einen Endpunkt, der mithilfe von Port 7022 alle Rollen 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. Auf der Prinzipalserverinstanz (auf PARTNERHOST1) sichern Sie die Datenbank:

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

    RESTORE DATABASE AdventureWorks 
        FROM DISK = 'Z:\AdvWorks_dbmirror.bak' 
        WITH NORECOVERY
    GO
    
  5. Nach dem Erstellen der vollständigen Datenbanksicherung müssen Sie eine Protokollsicherung für die Prinzipaldatenbank erstellen. Mit der folgenden Transact-SQL-Anweisung wird beispielsweise das Protokoll in derselben Datei gesichert, die auch bei der vorhergehenden vollständigen Datenbanksicherung verwendet wurde:

    BACKUP LOG AdventureWorks 
        TO DISK = 'C:\AdventureWorks.bak' 
    GO
    
  6. Bevor die Spiegelung gestartet werden kann, müssen Sie die erforderliche Protokollsicherung (und gegebenenfalls nachfolgende Protokollsicherungen) anwenden.

    Mit der folgenden Transact-SQL-Anweisung wird z. B. das erste Protokoll aus C:\AdventureWorks.bak wiederhergestellt:

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

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

    Eine Datenbankspiegelungssitzung wird standardmäßig im synchronen Modus ausgeführt, wozu die Transaktionssicherheitsstufe FULL verwendet wird (d. h., SAFETY auf FULL festgelegt sein muss). Um eine Sitzung im asynchronen Modus für hohe Leistung auszuführen, legen Sie SAFETY auf OFF fest. Weitere Informationen finden Sie unter Betriebsmodi der Datenbankspiegelung.

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

    USE master;
    GO
    ALTER DATABASE AdventureWorks 
        SET PARTNER = 'TCP://PARTNERHOST5:7022'
    GO
    
  9. Optional oder wenn Sie den Modus für hohe Sicherheit mit automatischem Failover verwenden möchten, richten Sie die Zeugenserverinstanz ein. Weitere Informationen finden Sie unter Hinzufügen eines Zeugen für die Datenbankspiegelung mithilfe der Windows-Authentifizierung (Transact-SQL).

HinweisHinweis

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

Siehe auch

Aufgaben

Zulassen des Netzwerkzugriffs auf einen Datenbank-Spiegelungsendpunkt mithilfe der Windows-Authentifizierung (SQL Server)

Verweis

ALTER DATABASE (Transact-SQL)

Konzepte

Einrichten einer Sitzung für die Datenbankspiegelung (SQL Server)

Vorbereiten einer Spiegeldatenbank auf 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 einer Sitzung für die Datenbankspiegelung (SQL Server)

Angeben einer Servernetzwerkadresse (Datenbankspiegelung)

Betriebsmodi der Datenbankspiegelung