Unterstützung für Microsoft Distributed Transaction Coordinator in RDS für SQL Server - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Unterstützung für Microsoft Distributed Transaction Coordinator in RDS für SQL Server

Eine verteilte Transaktion ist eine Datenbanktransaktion, an der zwei oder mehr Netzwerkhosts beteiligt sind. RDS für SQL Server unterstützt verteilte Transaktionen zwischen Hosts, wobei ein einzelner Host einer der folgenden sein kann:

  • RDS for SQL Server-DB-Instance

  • Lokaler SQL Server-Host

  • Amazon EC2-Host mit installiertem SQL Server

  • Alle anderen EC2-Host- oder RDS-DB-Instances mit einer Datenbank-Engine, die verteilte Transaktionen unterstützt

In RDS, beginnend mit SQL Server 2012 (Version 11.00.5058.0.v1 und höher), unterstützen alle Editionen von RDS für SQL Server verteilte Transaktionen. Die Unterstützung wird mithilfe von Microsoft Distributed Transaction Coordinator (MSDTC) bereitgestellt. Ausführliche Informationen zu MSDTC finden Sie unter Distributed Transaction Coordinator in der Microsoft-Dokumentation.

Einschränkungen

Die folgenden Einschränkungen gelten für die Verwendung von MSDTC auf RDS for SQL Server:

  • MSDTC wird auf Instances, welche die SQL Server-Datenbankspiegelung verwenden, nicht unterstützt. Weitere Informationen finden Sie unter Transaktionen - Verfügbarkeitsgruppen und Datenbankspiegelung.

  • Der Parameter in-doubt xact resolution muss auf 1 oder 2 gesetzt werden. Weitere Informationen finden Sie unter Ändern des Parameters für MSDTC.

  • MSDTC erfordert, dass alle Hosts, die an verteilten Transaktionen beteiligt sind, mit ihren Hostnamen auflösbar sind. RDS verwaltet diese Funktionalität automatisch für domänengebundene Instances. Achten Sie jedoch bei eigenständigen Instances darauf, den DNS-Server manuell zu konfigurieren.

  • XA-Transaktionen (Java Database Connectivity) werden für SQL Server 2017, Version 14.00.3223.3 und höher, und SQL Server 2019, unterstützt.

  • Verteilte Transaktionen, die auf RDS-Instances von Client Dynamic Link Libraries (DLLs) abhängen, werden nicht unterstützt.

  • Die Verwendung benutzerdefinierter dynamischer XA-Verknüpfungsbibliotheken wird nicht unterstützt.

Aktivieren von MSDTC

Verwenden Sie den folgenden Prozess, um MSDTC für Ihre DB-Instance zu aktivieren:

  1. Erstellen Sie eine neue Optionsgruppe oder wählen Sie eine bestehende Optionsgruppe aus.

  2. Fügen Sie die Option MSDTC zur Optionsgruppe hinzu.

  3. Erstellen Sie eine neue Parametergruppe oder wählen Sie eine vorhandene Parametergruppe aus.

  4. Ändern Sie die Parametergruppe, um den Parameter in-doubt xact resolution auf 1 oder 2 festzulegen.

  5. Ordnen Sie die Optionsgruppe und die Parametergruppe der DB-Instance zu.

Erstellen der Optionsgruppe für MSDTC

Verwenden Sie die AWS Management Console oder AWS CLI, um eine Optionsgruppe zu erstellen, die der SQL Server-Engine und der Version Ihrer DB-Instance entspricht.

Anmerkung

Sie können auch eine vorhandene Optionsgruppe verwenden, wenn es sich um die korrekte SQL Server-Engine und -Version handelt.

Mit der folgenden Konsolenprozedur wird eine Optionsgruppe für SQL Server Standard Edition 2016 erstellt.

So erstellen Sie die Optionsgruppe
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Option groups (Optionsgruppen) aus.

  3. Wählen Sie Create group (Gruppe erstellen) aus.

  4. Führen Sie im Bereich Create option group (Optionsgruppe erstellen) Folgendes aus:

    1. Geben Sie unter Name einen Namen für die Optionsgruppe ein, der innerhalb Ihres AWS-Kontos nur einmal vorkommt, z. B. msdtc-se-2016. Der Name darf nur Buchstaben, Ziffern und Bindestriche enthalten.

    2. Geben Sie unter Beschreibung eine kurze Beschreibung der Optionsgruppe ein, z. B. MSDTC option group for SQL Server SE 2016. Die Beschreibung ist nur zur Information.

    3. Wählen Sie für Engine die Option sqlserver-se aus.

    4. Wählen Sie im Feld Engine-Hauptversion 13.00 aus.

  5. Wählen Sie Create aus.

Im folgenden Beispiel wird eine Optionsgruppe für SQL Server Standard Edition 2016 erstellt.

So erstellen Sie die Optionsgruppe
  • Verwenden Sie einen der folgenden Befehle.

    Für Linux, macOSoder Unix:

    aws rds create-option-group \ --option-group-name msdtc-se-2016 \ --engine-name sqlserver-se \ --major-engine-version 13.00 \ --option-group-description "MSDTC option group for SQL Server SE 2016"

    Windows:

    aws rds create-option-group ^ --option-group-name msdtc-se-2016 ^ --engine-name sqlserver-se ^ --major-engine-version 13.00 ^ --option-group-description "MSDTC option group for SQL Server SE 2016"

Hinzufügen der MSDTC-Option zur Optionsgruppe

Verwenden Sie als Nächstes die AWS Management Console oder AWS CLI, um die Option MSDTC zur Optionsgruppe hinzuzufügen.

Die folgenden Optionseinstellungen sind erforderlich:

  • Port – Der Port, den Sie für den Zugriff auf MSDTC verwenden. Zulässige Werte sind 1150–49151 mit Ausnahme von 1234, 1434, 3260, 3343, 3389 und 47001. Der Standardwert ist 5000.

    Stellen Sie sicher, dass der zu verwendende Port in den Firewall-Regeln aktiviert ist. Stellen Sie außerdem sicher, dass dieser Port bei Bedarf in den ein- und ausgehenden Regeln für die Sicherheitsgruppe aktiviert ist, die Ihrer DB-Instance zugeordnet ist. Weitere Informationen finden Sie unter Verbindung zur Amazon RDS-DB-Instance kann nicht hergestellt werden.

  • Sicherheitsgruppen – Die VPC-Sicherheitsgruppenmitgliedschaften für Ihre RDS-DB-Instance.

  • Authentifizierungstyp – Der Authentifizierungsmodus zwischen Hosts. Die folgenden Authentifizierungstypen werden unterstützt:

    • Gegenseitig – Die RDS-Instances werden gegenseitig mittels integrierter Authentifizierung authentifiziert. Wenn diese Option ausgewählt ist, müssen alle Instances, die dieser Optionsgruppe zugeordnet sind, einer Domäne zugeordnet sein.

    • Keine – Es wird keine Authentifizierung zwischen Hosts durchgeführt. Es wird nicht empfohlen, diesen Modus in Produktionsumgebungen zu verwenden.

  • Transaktionsprotokollgröße – Die Größe des MSDTC-Transaktionsprotokolls. Zulässige Werte sind 4–1024 MB. Die Standardgröße beträgt 4 MB.

Die folgenden Optionseinstellungen sind optional:

  • Eingehende Verbindungen aktivieren – Gibt an, ob eingehende MSDTC-Verbindungen zu Instances zugelassen werden sollen, die dieser Optionsgruppe zugeordnet sind.

  • Ausgehende Verbindungen aktivieren – Gibt an, ob ausgehende MSDTC-Verbindungen von Instances zugelassen werden sollen, die dieser Optionsgruppe zugeordnet sind.

  • XA aktivieren – Gibt an, ob XA-Transaktionen zugelassen werden sollen. Weitere Informationen zum XA-Protokoll finden Sie unter XA-Spezifikation.

  • SNA LU aktivieren – Gibt an, ob das SNA LU-Protokoll für verteilte Transaktionen verwendet werden kann. Weitere Informationen zur Unterstützung des SNA LU-Protokolls finden Sie unter Verwalten von IBM CICS LU 6.2-Transaktionen in der Microsoft-Dokumentation.

So fügen Sie die MSDTC-Option hinzu
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Option groups (Optionsgruppen) aus.

  3. Wählen Sie die Optionsgruppe aus, die Sie gerade erstellt haben.

  4. Wählen Sie Add option (Option hinzufügen).

  5. Wählen Sie unter Optionsdetails für Optionsname die Option MSDTC aus.

  6. Unter Optionseinstellungen:

    1. Geben Sie unter Port die Portnummer für den Zugriff auf MSDTC ein. Der Standardwert ist 5000.

    2. Wählen Sie für Security groups (Sicherheitsgruppen) die VPC-Sicherheitsgruppe aus, die der Option zugeordnet werden soll.

    3. Wählen Sie für Authentifizierungstyp die Option Gegenseitig oder Keine aus.

    4. Geben Sie für Transaktionsprotokollgröße einen Wert von 4–1024 ein. Der Standardwert ist 4.

  7. Führen Sie unter Zusätzliche Konfiguration die folgenden Schritte aus:

    1. Wählen Sie für Verbindungen nach Bedarf die Option Eingehende Verbindungen aktivieren und Ausgehende Verbindungen aktivieren aus.

    2. Wählen Sie für Zulässige Protokolle nach Bedarf die Option XA aktivieren und SNA LU aktivieren aus.

  8. Wählen Sie unter Scheduling (Planung) aus, ob die Option sofort oder während des nächsten Wartungsfensters hinzugefügt werden soll.

  9. Wählen Sie Add option (Option hinzufügen).

    Um diese Option hinzuzufügen, ist kein Neustart erforderlich.

So fügen Sie die MSDTC-Option hinzu
  1. Erstellen Sie beispielsweise msdtc-option.json, eine JSON-Datei mit den folgenden erforderlichen Parametern.

    { "OptionGroupName":"msdtc-se-2016", "OptionsToInclude": [ { "OptionName":"MSDTC", "Port":5000, "VpcSecurityGroupMemberships":["sg-0abcdef123"], "OptionSettings":[{"Name":"AUTHENTICATION","Value":"MUTUAL"},{"Name":"TRANSACTION_LOG_SIZE","Value":"4"}] }], "ApplyImmediately": true }
  2. Fügen Sie die Option MSDTC zur Optionsgruppe hinzu.

    Für Linux, macOSoder Unix:

    aws rds add-option-to-option-group \ --cli-input-json file://msdtc-option.json \ --apply-immediately

    Windows:

    aws rds add-option-to-option-group ^ --cli-input-json file://msdtc-option.json ^ --apply-immediately

    Es ist kein Neustart erforderlich.

Erstellen der Parametergruppe für MSDTC

Erstellen oder ändern Sie eine Parametergruppe für den in-doubt xact resolution-Parameter, der der SQL Server-Edition und der Version Ihrer DB-Instance entspricht.

Im folgenden Beispiel wird eine Parametergruppe für SQL Server Standard Edition 2016 erstellt.

So erstellen Sie die Parametergruppe
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Parameter groups (Parametergruppen) aus.

  3. Wählen Sie Create parameter group (Parametergruppe erstellen).

  4. Führen Sie im Bereich Parametergruppe erstellen die folgenden Schritte aus:

    1. Wählen Sie für Parametergruppenfamilie die Option sqlserver-se-13.0 aus.

    2. Geben Sie unter Gruppenname einen Bezeichner für die Parametergruppe ein, z. B. msdtc-sqlserver-se-13.

    3. Geben Sie für Beschreibung den Text in-doubt xact resolution ein.

  5. Wählen Sie Create aus.

Im folgenden Beispiel wird eine Parametergruppe für SQL Server Standard Edition 2016 erstellt.

So erstellen Sie die Parametergruppe
  • Verwenden Sie einen der folgenden Befehle.

    Für Linux, macOSoder Unix:

    aws rds create-db-parameter-group \ --db-parameter-group-name msdtc-sqlserver-se-13 \ --db-parameter-group-family "sqlserver-se-13.0" \ --description "in-doubt xact resolution"

    Windows:

    aws rds create-db-parameter-group ^ --db-parameter-group-name msdtc-sqlserver-se-13 ^ --db-parameter-group-family "sqlserver-se-13.0" ^ --description "in-doubt xact resolution"

Ändern des Parameters für MSDTC

Ändern Sie den in-doubt xact resolution-Parameter in der Parametergruppe, die der SQL Server-Edition und der Version Ihrer DB-Instance entspricht.

Legen Sie für MSDTC den in-doubt xact resolution-Parameter auf einen der folgenden Parameter fest:

  • 1Presume commit. Alle unsicheren MSDTC-Transaktionen werden als übermittelt angesehen.

  • 2Presume abort. Alle unsicheren MSDTC-Transaktionen werden als gestoppt angesehen.

Weitere Informationen finden Sie unter Lösung für unklare Transaktion (Serverkonfigurationsoption) in der Microsoft-Dokumentation.

Im folgenden Beispiel wird die Parametergruppe geändert, die Sie für SQL Server Standard Edition 2016 erstellt haben.

So ändern Sie die Parametergruppe
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Parameter groups (Parametergruppen) aus.

  3. Wählen Sie die Parametergruppe aus, z. B. msdtc-sqlserver-se-13.

  4. Filtern Sie unter Parameter die Parameterliste nach xact.

  5. Wählen Sie in-doubt xact resolution aus.

  6. Wählen Sie Parameter bearbeiten aus.

  7. Geben Sie 1 oder 2 ein.

  8. Wählen Sie Änderungen speichern aus.

Im folgenden Beispiel wird die Parametergruppe geändert, die Sie für SQL Server Standard Edition 2016 erstellt haben.

So ändern Sie die Parametergruppe
  • Verwenden Sie einen der folgenden Befehle.

    Für Linux, macOSoder Unix:

    aws rds modify-db-parameter-group \ --db-parameter-group-name msdtc-sqlserver-se-13 \ --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"

    Windows:

    aws rds modify-db-parameter-group ^ --db-parameter-group-name msdtc-sqlserver-se-13 ^ --parameters "ParameterName='in-doubt xact resolution',ParameterValue=1,ApplyMethod=immediate"

Zuordnen der Options- und Parametergruppe zur DB-Instance

Sie können die AWS Management Console oder AWS CLI verwenden, um die MSDTC-Optionsgruppe und die Parametergruppe der DB-Instance zuzuordnen.

Sie können die MSDTC-Optionsgruppe und die Parametergruppe einer neuen oder vorhandenen DB-Instance zuordnen.

  • Ordnen Sie sie bei einer neuen DB-Instance zu, wenn Sie die Instance starten. Weitere Informationen finden Sie unter Erstellen einer Amazon RDS-DB-Instance.

  • Ordnen Sie sie für eine vorhandene DB-Instance zu, indem Sie die Instance ändern. Weitere Informationen finden Sie unter Ändern einer Amazon RDS-DB-Instance.

    Anmerkung

    Wenn Sie eine vorhandene Instance verwenden, die einer Domäne beigetreten ist, muss ihr bereits eine Active Directory-Domäne und eine AWS Identity and Access Management (IAM)-Rolle zugeordnet sein. Wenn Sie eine neue Instance erstellen, die einer Domäne beigetreten ist, geben Sie eine vorhandene Active Directory-Domäne und IAM-Rolle an. Weitere Informationen finden Sie unter Arbeiten mit AWS Managed Active Directory mit RDS für SQL Server.

Sie können die MSDTC-Optionsgruppe und die Parametergruppe einer neuen oder vorhandenen DB-Instance zuordnen.

Anmerkung

Wenn Sie eine vorhandene Instance verwenden, die einer Domäne beigetreten ist, muss ihr bereits eine Active Directory-Domäne und eine IAM-Rolle zugeordnet sein. Wenn Sie eine neue Instance erstellen, die einer Domäne beigetreten ist, geben Sie eine vorhandene Active Directory-Domäne und IAM-Rolle an. Weitere Informationen finden Sie unter Arbeiten mit AWS Managed Active Directory mit RDS für SQL Server.

So erstellen Sie eine DB-Instance mit der MSDTC-Optionsgruppe und der Parametergruppe
  • Geben Sie denselben DB-Engine-Typ und dieselbe Hauptversion an, die Sie beim Erstellen der Optionsgruppe verwendet haben.

    Für Linux, macOSoder Unix:

    aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --db-instance-class db.m5.2xlarge \ --engine sqlserver-se \ --engine-version 13.00.5426.0.v1 \ --allocated-storage 100 \ --manage-master-user-password \ --master-username admin \ --storage-type gp2 \ --license-model li \ --domain-iam-role-name my-directory-iam-role \ --domain my-domain-id \ --option-group-name msdtc-se-2016 \ --db-parameter-group-name msdtc-sqlserver-se-13

    Windows:

    aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --db-instance-class db.m5.2xlarge ^ --engine sqlserver-se ^ --engine-version 13.00.5426.0.v1 ^ --allocated-storage 100 ^ --manage-master-user-password ^ --master-username admin ^ --storage-type gp2 ^ --license-model li ^ --domain-iam-role-name my-directory-iam-role ^ --domain my-domain-id ^ --option-group-name msdtc-se-2016 ^ --db-parameter-group-name msdtc-sqlserver-se-13
So ändern Sie eine DB-Instance und ordnen die MSDTC-Optionsgruppe und die Parametergruppe zu
  • Verwenden Sie einen der folgenden Befehle.

    Für Linux, macOSoder Unix:

    aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --option-group-name msdtc-se-2016 \ --db-parameter-group-name msdtc-sqlserver-se-13 \ --apply-immediately

    Windows:

    aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --option-group-name msdtc-se-2016 ^ --db-parameter-group-name msdtc-sqlserver-se-13 ^ --apply-immediately

Verwenden verteilter Transaktionen

In Amazon RDS for SQL Server führen Sie verteilte Transaktionen auf die gleiche Weise aus wie verteilte Transaktionen, die lokal ausgeführt werden:

  • Mithilfe von heraufstufbaren System.Transactions-Transaktionen im .NET Framework, die verteilte Transaktionen optimieren, indem ihre Erstellung so lange verschoben wird, bis sie benötigt werden.

    In diesem Fall erfolgt die Heraufstufung automatisch und erfordert keine Intervention. Wenn nur ein Ressourcenmanager innerhalb der Transaktion vorhanden ist, wird keine Heraufstufung durchgeführt. Weitere Informationen zu impliziten Transaktionsbereichen finden Sie unter Implementieren einer impliziten Transaktion mit Transaktionsbereich in der Microsoft-Dokumentation.

    Heraufstufbare Transaktionen werden mit folgenden .NET-Implementierungen unterstützt:

    • Beginnend mit ADO.NET 2.0 unterstützt System.Data.SqlClient heraufstufbare Transaktionen mit SQL Server. Weitere Informationen finden Sie unter System.Transactions-Integration in SQL Server in der Microsoft-Dokumentation.

    • ODP.NET unterstützt System.Transactions. Für die erste Verbindung, die im TransactionsScope-Bereich zu Oracle Database 11g Release 1 (Version 11.1) und höher geöffnet wurde, wird eine lokale Transaktion erstellt. Wenn eine zweite Verbindung geöffnet wird, wird diese Transaktion automatisch zu einer verteilten Transaktion heraufgestuft. Weitere Informationen zur Unterstützung verteilter Transaktionen in ODP.NET finden Sie unter Microsoft Distributed Transaction Coordinator-Integration in der Microsoft-Dokumentation.

  • Verwenden der BEGIN DISTRIBUTED TRANSACTION-Anweisung. Weitere Informationen finden Sie unter BEGIN DISTRIBUTED TRANSACTION (Transact-SQL) in der Microsoft-Dokumentation.

XA-Transaktionen verwenden

Ab RDS für SQL Server 2017, Version 14.00.3223.3, können Sie verteilte Transaktionen mit JDBC steuern. Wenn Sie dieEnable XAOptionseinstellung auftrueimMSDTCaktiviert, aktiviert RDS automatisch JDBC-Transaktionen und gewährt dieSqlJDBCXAUser-Rolle auf dieguest-Benutzer. Dies ermöglicht die Ausführung verteilter Transaktionen über JDBC. Weitere Informationen, einschließlich eines Code-Beispiels, finden Sie unter unter.XA-Transaktionenin der Microsoft-Dokumentation.

Verwenden der Transaktionsnachverfolgung

RDS unterstützt die Steuerung von MSDTC-Transaktionsnachverfolgungen und deren Herunterladen aus der RDS-DB-Instance zur Fehlerbehebung. Sie können Transaktionsnachverfolgungssitzungen steuern, indem Sie die folgende gespeicherte RDS-Prozedur ausführen.

exec msdb.dbo.rds_msdtc_transaction_tracing 'trace_action', [@traceall='0|1'], [@traceaborted='0|1'], [@tracelong='0|1'];

Der folgende Parameter ist erforderlich:

  • trace_action – Die Nachverfolgungsaktion. Sie kann START, STOP oder STATUS sein.

Die folgenden Parameter sind optional:

  • @traceall – Setzen Sie auf 1, um alle verteilten Transaktionen nachzuverfolgen. Der Standardwert ist 0.

  • @traceaborted – Setzen Sie auf 1, um abgebrochene verteilte Transaktionen nachzuverfolgen. Der Standardwert ist 0.

  • @tracelong – Setzen Sie auf 1, um zeitintensive verteilte Transaktionen zu verfolgen. Der Standardwert ist 0.

Beispiel mit START-Nachverfolgungsaktion

Um eine neue Transaktionsnachverfolgungssitzung zu starten, führen Sie die folgende Beispielanweisung aus.

exec msdb.dbo.rds_msdtc_transaction_tracing 'START', @traceall='0', @traceaborted='1', @tracelong='1';
Anmerkung

Es kann nur eine Transaktionsnachverfolgungssitzung gleichzeitig aktiv sein. Wenn ein neuer START-Befehl für die Nachverfolgungssitzung ausgegeben wird, während eine Nachverfolgungssitzung aktiv ist, wird ein Fehler zurückgegeben, und die aktive Nachverfolgungssitzung bleibt unverändert.

Beispiel mit STOP-Nachverfolgungsaktion

Um eine Transaktionsnachverfolgungssitzung zu beenden, führen Sie die folgende Anweisung aus.

exec msdb.dbo.rds_msdtc_transaction_tracing 'STOP'

Diese Anweisung stoppt die aktive Transaktionsnachverfolgungssitzung und speichert die Transaktionsnachverfolgungsdaten im Protokollverzeichnis der RDS-DB-Instance. Die erste Zeile der Ausgabe enthält das Gesamtergebnis und die folgenden Zeilen zeigen Details der Operation an.

Im Folgenden finden Sie ein Beispiel für einen erfolgreichen Sitzungsstopp der Nachverfolgung.

OK: Trace session has been successfully stopped. Setting log file to: D:\rdsdbdata\MSDTC\Trace\dtctrace.log Examining D:\rdsdbdata\MSDTC\Trace\msdtctr.mof for message formats, 8 found. Searching for TMF files on path: (null) Logfile D:\rdsdbdata\MSDTC\Trace\dtctrace.log: OS version 10.0.14393 (Currently running on 6.2.9200) Start Time <timestamp> End Time <timestamp> Timezone is @tzres.dll,-932 (Bias is 0mins) BufferSize 16384 B Maximum File Size 10 MB Buffers Written Not set (Logger may not have been stopped). Logger Mode Settings (11000002) ( circular paged ProcessorCount 1 Processing completed Buffers: 1, Events: 3, EventsLost: 0 :: Format Errors: 0, Unknowns: 3 Event traces dumped to d:\rdsdbdata\Log\msdtc_<timestamp>.log

Mit den detaillierten Informationen können Sie den Namen der generierten Protokolldatei abfragen. Weitere Informationen zum Herunterladen von Protokolldateien aus der RDS-DB-Instance finden Sie unter Überwachen von Amazon RDS-Protokolldateien.

Die Nachverfolgungssitzungsprotokolle verbleiben 35 Tage lang auf der Instance. Ältere Nachverfolgungssitzungsprotokolle werden automatisch gelöscht.

Beispiel mit STATUS-Nachverfolgungsaktion

Um den Status einer Transaktionsnachverfolgungssitzung nachzuverfolgen, führen Sie die folgende Anweisung aus.

exec msdb.dbo.rds_msdtc_transaction_tracing 'STATUS'

Diese Anweisung gibt Folgendes als separate Zeilen der Ergebnismenge aus.

OK SessionStatus: <Started|Stopped> TraceAll: <True|False> TraceAborted: <True|False> TraceLongLived: <True|False>

Die erste Zeile gibt das Gesamtergebnis der Operation an: OK oder gegebenenfalls ERROR mit Details. Die folgenden Zeilen zeigen Details zum Status der Nachverfolgungssitzung an:

  • SessionStatus kann einer der folgenden sein:

    • Started, wenn eine Nachverfolgungssitzung ausgeführt wird.

    • Stopped, wenn keine Nachverfolgungssitzung ausgeführt wird.

  • Die Protokollierungssitzungs-Flags können True oder False abhängig davon sein, wie sie im START-Befehl festgelegt wurden.

Ändern der MSDTC-Option

Nachdem Sie die Option MSDTC aktiviert haben, können Sie ihre Einstellungen ändern. Weitere Informationen über das Ändern von Optionseinstellungen finden Sie unter Ändern einer Optionseinstellung.

Anmerkung

Bei einigen Änderungen an den MSDTC-Optionseinstellungen muss der MSDTC-Service neu gestartet werden. Diese Anforderung kann sich auf die Ausführung verteilter Transaktionen auswirken.

Deaktivieren von MSDTC

Um MSDTC zu deaktivieren, entfernen Sie die Option MSDTC aus der Optionsgruppe.

So entfernen Sie die MSDTC-Option aus der Optionsgruppe
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Option groups (Optionsgruppen) aus.

  3. Wählen Sie die Optionsgruppe mit der Option MSDTC (msdtc-se-2016 in den vorherigen Beispielen).

  4. Wählen Sie Delete option (Option löschen) aus.

  5. Wählen Sie unter Löschoptionen für Zu löschende Optionen die Option MSDTC aus.

  6. Wählen Sie unter Apply immediately (Sofort anwenden) die Option Yes (Ja) aus, um die Option sofort zu löschen, oder No (Nein), um sie während des nächsten Wartungsfensters zu löschen.

  7. Wählen Sie Löschen aus.

So entfernen Sie die MSDTC-Option aus der Optionsgruppe
  • Verwenden Sie einen der folgenden Befehle.

    Für Linux, macOSoder Unix:

    aws rds remove-option-from-option-group \ --option-group-name msdtc-se-2016 \ --options MSDTC \ --apply-immediately

    Windows:

    aws rds remove-option-from-option-group ^ --option-group-name msdtc-se-2016 ^ --options MSDTC ^ --apply-immediately

Problembehandlung bei MSDTC für RDS für SQL Server

In einigen Fällen haben Sie möglicherweise Probleme beim Herstellen einer Verbindung zwischen MSDTC, der auf einem Client-Computer ausgeführt wird, und dem MSDTC-Dienst, der auf einer RDS für SQL Server-DB-Instance ausgeführt wird. Wenn ja, stellen Sie Folgendes sicher:

  • Die eingehenden Regeln für die Sicherheitsgruppe, die der DB-Instance zugeordnet ist, sind korrekt konfiguriert. Weitere Informationen finden Sie unter Verbindung zur Amazon RDS-DB-Instance kann nicht hergestellt werden.

  • Der Client-Computer ist korrekt konfiguriert.

  • Die MSDTC-Firewall-Regeln auf Ihrem Client-Computer sind aktiviert.

So konfigurieren Sie den Client-Computer
  1. Öffnen Sie Komponentendienste.

    Oder wählen Sie im Server-Manager die Option Tools und dann Komponentendienste aus.

  2. Erweitern Sie Komponentendienste, erweitern Sie Computer, erweitern Sie Arbeitsplatz und erweitern Sie dann Distributed Transaction Coordinator.

  3. Öffnen Sie das Kontextmenü (Rechtsklick) für Lokaler DTC und wählen Sie Eigenschaften aus.

  4. Wählen Sie die Registerkarte Sicherheit aus.

  5. Wählen Sie alle der folgenden Optionen aus:

    • Netzwerk-DTC-Zugriff

    • Eingehende zulassen

    • Ausgehende zulassen

  6. Stellen Sie sicher, dass der richtige Authentifizierungsmodus gewählt ist:

    • Gegenseitige Authentifizierung erforderlich – Der Client-Computer ist mit derselben Domäne verbunden wie andere Knoten, die an einer verteilten Transaktion beteiligt sind, oder es ist eine Vertrauensstellung zwischen Domänen konfiguriert.

    • Keine Authentifizierung erforderlich – Alle anderen Fälle.

  7. Wählen Sie OK aus, um Ihre Änderungen zu speichern.

  8. Wenn Sie aufgefordert werden, den Dienst neu zu starten, wählen Sie Ja.

So aktivieren Sie MSDTC-Firewall-Regeln
  1. Öffnen Sie die Windows-Firewall und wählen Sie dann Erweiterte Einstellungen aus.

    Oder wählen Sie im Server-Manager die Option Tools und dann Windows-Firewall mit erweiterter Sicherheit aus.

    Anmerkung

    Abhängig von Ihrem Betriebssystem wird die Windows-Firewall möglicherweise als Windows Defender Firewall bezeichnet.

  2. Wählen Sie im linken Bereich die Option Eingehende Regeln aus.

  3. Aktivieren Sie die folgenden Firewall-Regeln, wenn sie noch nicht aktiviert sind:

    • Distributed Transaction Coordinator (RPC)

    • Distributed Transaction Coordinator (RPC)-EPMAP

    • Distributed Transaction Coordinator (TCP-In)

  4. Schließen Sie die Windows-Firewall.