Mit Datenbankspiegeln für datenbankübergreifende oder verteilte Transaktionen wird in SQL Server nicht unterstützt.

Einführung

Später wird für datenbankübergreifende Transaktionen oder verteilte Transaktionen in Microsoft SQL Server 2005 Service Pack 1 (SP1) und späteren Versionen unterstützt.

Weitere Informationen

Datenbank-Spiegelung eingeschränkte Unterstützung

Microsoft SQL Server 2005 Service Pack 1 (SP1) eingeführt Datenbankspiegelungsfeature. Jedoch wird später nicht für datenbankübergreifende Transaktionen oder verteilte Transaktionen unterstützt. Atomizität und Integrität gewährleistet in den folgenden Szenarien werden:
  • Datenbankübergreifende Transaktionen

    Nach einem Failover wird die gespiegelte Datenbank auf einen anderen Server-Instanz. Normalerweise wird die gespiegelte Datenbank auf separate Server-Instanz aus der Datenbank nicht gespiegelt. Auch wenn beide Datenbanken zwischen denselben beiden Partnern gespiegelt sind, besteht keine Garantie, der beide Datenbanken gleichzeitig erfolgt.
  • Transaktionen von Microsoft Distributed Transaction Coordinator (MS DTC)

    Nach einem Failover Verbindung keine neuen Prinzipalserver MS DTC vorherige Prinzipalserver, die die gleichen Ressourcen-ID. Somit kann keine neuen Prinzipalserver den Status erhalten.

Beispielszenario

Folgenden Beispielszenario veranschaulicht, wie eine logische Inkonsistenzen zwischen Datenbanken Verwendung später mit datenbankübergreifende Transaktionen auftreten. In diesem Beispiel verwendet eine Anwendung eine datenbankübergreifenden Transaktion zwei Zeilen mit Daten einfügen. Das folgende Verhalten:
  • Eine Tabelle in einer gespiegelten Datenbank A eine Zeile eingefügt.
  • Die Zeile wird in einer Tabelle in eine andere Datenbank B eingefügt.
Eine Datenbank im Modus für hohe Sicherheit mit automatischem Failover gespiegelt. Während die Transaktion festgeschrieben, Datenbanken verfügbar und die gespiegelte Sitzung automatisch ein Failover auf den Spiegel der Datenbank a

Nach dem Failover datenbankübergreifende Transaktionen möglicherweise erfolgreich in Datenbank B jedoch nicht auf die Failover-Datenbank. Dieses Verhalten kann auftreten, wenn der ursprüngliche Prinzipalserver für ein Transaktionslog für die datenbankübergreifende Transaktionen nicht auf den Spiegelserver vor dem Ausfall senden. Nach dem Failover ist die Transaktion nicht auf dem neuen Prinzipalserver vorhanden. Datenbank A und B sind daher inkonsistent. Daten in Datenbank B eingefügt bleibt. Die Daten in eine Datenbank eingefügt geht verloren.

Ein ähnliches Szenario kann auftreten, wenn Sie später mit MS DTC-Transaktionen verwenden. Zum Beispiel Kontakte die neuen Prinzipalserver MS DTC nach einem Failover. MS DTC hat jedoch keine Kenntnis von der neuen Prinzipalserver her. Daher reagiert MS DTC alle Transaktionen, die in der Phase "Vorbereiten Commit" Obwohl Transaktionen ein Commit in anderen Datenbanken berücksichtigt werden.

Weitere Informationen zu den Produkten und Tools automatisch prüfen, ob dies die Instanz von SQL Server und der SQL Server-Versionen finden Sie in der folgenden Tabelle:

Regel-softwareRegel-TitelBeschreibungProduktversionen, die Regel ausgewertet wird
System Center AdvisorSQL Server-Database mirroring wird mit verteilten und datenbankübergreifende Transaktionen nicht unterstützt.System Center Advisor überprüft, ob alle Datenbanken auf dem SQL Server-Instanz für das Datenbankspiegeln aktiviert ist. Advisor generiert diese Warnung auf der Grundlage dieser Bedingung. Überprüfen der Anwendung, die mit dieser Datenbank verbinden und sicherstellen die SQL-Anfragen von dieser Anwendung nicht verteilte Transaktionen und datenbankübergreifende Transaktionen an.SQL Server 2008
SQL Server 2008 R2
SQL Server 2012


Weitere Informationen zu SQL Server 2005-Database mirroring datenbankübergreifende Transaktionen finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website:

Eigenschaften

Artikelnummer: 926150 – Letzte Überarbeitung: 14.01.2017 – Revision: 1

Feedback