In SQL Server 2005 wird die Datenbank-Spiegelung für datenbankübergreifende Transaktionen oder verteilte Transaktionen nicht unterstützt

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 926150 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Ob # Fehler: 439321 (SQLBUDT)
Alles erweitern | Alles schließen

Auf dieser Seite

EINFÜHRUNG

Die Datenbank-Spiegelung wird für datenbankübergreifende Transaktionen oder verteilte Transaktionen in Microsoft SQL Server 2005 nicht unterstützt.

Weitere Informationen

Microsoft SQL Server 2005 Service Pack 1 ( 1) führte die database-mirroring Feature ein. Die Datenbank-Spiegelung wird nicht jedoch für datenbankübergreifende Transaktionen oder verteilte Transaktionen unterstützt. Transaktionsunteilbarkeit und Transaktionsintegrität können in den folgenden Szenarios nicht garantiert werden:
  • Datenbankübergreifend Transaktionen

    Die gespiegelte Datenbank befindet sich auf einer anderen Server-Instanz nach einem Failover. Die gespiegelte Datenbank befindet sich normalerweise auf einer separaten Server-Instanz aus der non-mirror Datenbank. Gespiegelt werden selbst wenn beide Datenbanken zwischen den Partnern denselben zwei gibt es keine Garantie, dass über beide Datenbanken zu der gleichen Zeit fehlschlagen werden.
  • MS DTC (MS DTC) Transaktionen

    Nicht mit dem MS DTC des vorherigen Prinzipalservers unter Verwendung derselben Ressource-Kennung kann der neue Prinzipalserver sich nach einem Failover verbinden. Daher kann den Buchungsstatus der neue Prinzipalserver nicht abrufen.

Beispielszenario

Das folgende Beispielszenario veranschaulicht, wie eine logische Inkonsistenz zwischen Datenbanken auftreten kann, wenn Sie die Datenbank-Spiegelung mit datenbankübergreifenden Transaktionen verwenden. In diesem Beispiel verwendet eine Anwendung eine datenbankübergreifende Transaktion, um Daten in zwei Zeilen einzufügen. Das folgende Verhalten tritt auf:
  • In einer Tabelle in einer gespiegelten Datenbank (Datenbank A) wird eine Zeile eingefügt.
  • Die andere Zeile wird in einer Tabelle in einer anderen Datenbank (Datenbank B) eingefügt.
Datenbank A wird in high-safety Modus mit automatischem Failover gespiegelt. Datenbank A ist nicht mehr verfügbar und über schlägt die Spiegelungssitzung automatisch auf dem Spiegel der Datenbank A fehl, während für die Transaktion ein Commit ausgeführt wird.

Für die datenbankübergreifende Transaktion wird erfolgreich Commit auf Datenbank B - den nicht auf failed - über Datenbank kann nach dem Failover ausgeführt. Dieses Verhalten kann auftreten, wenn der ursprüngliche Prinzipalserver für Datenbank A das Transaktionsprotokoll für die datenbankübergreifende Transaktion auf dem Spiegelserver vor dem Fehler nicht sendet. Nach dem Failover ist die Transaktion auf dem neuen Prinzipalserver nicht vorhanden. Deshalb sind Datenbank A und Datenbank B inkonsistent. Das in Datenbank B einfügen Daten erhalten bleibt. Das in Datenbank A einfügen Daten geht verloren.

Wenn Sie die Datenbank-Spiegelung mit MS DTC-Transaktionen verwenden, kann ein ähnliches Szenario auftreten. Beispielsweise kontaktiert der neue Prinzipalserver das MS DTC nach einem Failover. Das MS DTC verfügt jedoch nicht über keine Kenntnisse des neuen Prinzipalservers. Obwohl berücksichtigt wird in anderen Datenbanken ein Commit für die Transaktionen ausgeführt, beendet das MS DTC daher alle Transaktionen, die es in der "preparing" Phase geben, die Phase zuzusichern.

Eigenschaften

Artikel-ID: 926150 - Geändert am: Freitag, 10. November 2006 - Version: 1.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Service Pack 1, wenn verwendet mit:
    • Microsoft SQL Server 2005 Standard Edition
    • Microsoft SQL Server 2005 Enterprise Edition
    • Microsoft SQL Server 2005 Workgroup Edition
Keywords: 
kbharmony kbexpertiseadvanced kbinfo kbhowto KB926150 KbMtde kbmt
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 926150
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com