Direkt zum Inhalt

Wie behebe ich Konnektivitätsfehler bei AWS DMS-Endpunkten?

Lesedauer: 8 Minute
0

Ich kann keine Verbindung zu meinen AWS Database Migration Service (AWS DMS)-Endpunkten herstellen, und meine Testverbindung schlägt fehl. Ich möchte Konnektivitätsprobleme beheben.

Lösung

Wenn du die Verbindung von der Replikations-Instance zum Quell- oder Zielendpunkt testen, treten möglicherweise Verbindungsprobleme oder Probleme mit der systemeigenen Datenbank auf.

Wenn ein Verbindungsproblem zwischen der Replikations-Instance und der Quelle oder dem Ziel besteht, erhältst du Fehler ähnlich der folgenden:

  • „Application-Status: 1020912, Application-Message: Failed to connect Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: HYT00 NativeError: 0 Message: [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired ODBC general error.“
  • „Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]timeout expired ODBC general error.“
  • „Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider ODBC general error., Application-Detailed-Message: RetCode: SQL_ERROR SqlState: HY000 NativeError: 2005 Message: [unixODBC][MySQL][ODBC 5.3(w) Driver]Unknown MySQL server host 'mysql1.xxxxx.us-east-1.rds.amazonaws.com' (22) ODBC general error.“

Wenn der Fehler aufgrund von Problemen mit der systemeigenen Datenbank auftritt, z. B. aufgrund von Datenbankberechtigungs- oder Authentifizierungsfehlern, wird eine Fehlermeldung ähnlich der folgenden angezeigt:

„Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]FATAL: password authentication failed for user "dmsuser" ODBC general error.“

Hinweis: Es hat sich bewährt, die Verbindung von der AWS DMS-Replikations-Instance zu den Endpunkten zu testen, nachdem du die Quell- und Zielendpunkte erstellt hast. Schließe den Test ab, bevor du mit der AWS DMS-Migrationsaufgabe beginnst.

Verbindungsprobleme für Ressourcen beheben, die du auf AWS hostest

Prüfe, ob du eine Verbindung zwischen der Quell- oder Zieldatenbank und der Replikations-Instance herstellen kannst. Verbinde basierend auf dem Anwendungsfall und der Netzwerkinfrastruktur die Quell- oder Zieldatenbank mit einer Replikations-Instance in einem öffentlichen oder privaten Subnetz. Weitere Informationen findest du unter Einrichten eines Netzwerks für eine Replikations-Instance.

Hinweis: Die AWS DMS-Versionen 3.4.7 und höher erfordern, dass du AWS DMS für die Verwendung von Amazon Virtual Private Cloud (Amazon VPC)-Endpunkten konfigurierst. Oder du musst öffentliche Routen zu allen Quell- und Zielendpunkten verwenden, die mit bestimmten AWS Services interagieren.

Überprüfung der Konfiguration der Replikations-Instance

Bestätige in deiner Replikations-Instance, dass deine Konfiguration folgende Regeln umfasst:

  • Eine Regel für ausgehenden Datenverkehr für die IP-Adresse mit dem Port der Quell- oder Zieldatenbank in der Sicherheitsgruppe. Standardmäßig erlaubt die Regel für ausgehenden Datenverkehr einer Sicherheitsgruppe den gesamten Datenverkehr. Sicherheitsgruppen sind zustandsbehaftet, sodass du die Standardregel für eingehenden Datenverkehr beibehalten kannst.
  • Eine Regel für ausgehenden Datenverkehr für die IP-Adresse mit dem Port der Quell- oder Zieldatenbank in der Netzwerk-Zugriffssteuerungsliste (ACL). Standardmäßig lässt die Regel für ausgehenden Datenverkehr einer Netzwerk-ACL den gesamten Datenverkehr zu.
  • Eine Regel für eingehenden Datenverkehr für die IP-Adresse mit den kurzlebigen Ports der Quell- oder Zieldatenbank in der Netzwerk-ACL. Standardmäßig lässt die Regel für eingehenden Datenverkehr einer Netzwerk-ACL den gesamten Datenverkehr zu.

Überprüfe die Quell- oder Zieldatenbankkonfiguration

Vergewissere dich in der Quell- oder Zieldatenbank, dass die Konfiguration folgende Regeln beinhaltet:

  • Eine Regel für eingehenden Datenverkehr für die IP-Adresse der Replikations-Instance oder der CIDR-Block der Subnetzgruppe der Replikations-Instance. Die Regel für eingehenden Datenverkehr muss den Port der Quell- oder Zieldatenbank in der Sicherheitsgruppe enthalten. Sicherheitsgruppen sind zustandsbehaftet, sodass du die Standardregel für ausgehenden Datenverkehr beibehalten kannst.
  • Eine Regel für eingehenden Datenverkehr für die IP-Adresse der Replikations-Instance oder der CIDR-Block der Subnetzgruppe der Replikations-Instance. Die Regel für eingehenden Datenverkehr muss den Port der Quell- oder Zieldatenbank in der Netzwerk-ACL enthalten. Vergewissere dich, dass es keine explizite Ablehnungsregel für die zulässige IP-Adresse und den Port gibt.
  • Eine Regel für ausgehenden Datenverkehr für die IP-Adresse oder den CIDR-Block der Subnetzgruppe der Replikations-Instance mit kurzlebigen Ports in der Netzwerk-ACL. Standardmäßig lässt die Regel für ausgehenden Datenverkehr einer Netzwerk-ACL den gesamten Datenverkehr zu.

Es hat sich bewährt, das Netzwerk so zu konfigurieren, dass es den CIDR-Block der Subnetzgruppe der Replikations-Instance zulässt. Die IP-Adresse der Replikations-Instance ändert sich während eines Failovers oder eines Host-Wechsels.

Die IP-Adressen und den CIDR-Block einer Subnetzgruppe ermitteln

Ermittle die IP-Adressen und den CIDR-Block der Subnetzgruppe, um Regeln für eingehenden und ausgehenden Datenverkehr einzurichten. Du kannst entweder die AWS DMS-Konsole oder die AWS Command Line Interface (AWS CLI) verwenden.

Hinweis: Wenn du beim Ausführen von AWS CLI-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

AWS DMS-Konsole

Führe die folgenden Schritte aus:

  1. Öffne die AWS DMS-Konsole.
  2. Wähle im Navigationsbereich Replikations-Instances aus.
  3. Wähle die Replikations-Instance aus.
  4. Kopiere unter Details die öffentliche IP-Adresse, die private IP-Adresse und die Replikations-Subnetzgruppe der Replikations-Instance.
  5. Wähle unter Replikations-Subnetzgruppe den Link aus, um auf die Seite mit der Subnetzgruppe zuzugreifen. Kopiere den Namen jedes Subnetzes in der Subnetzgruppe.
  6. Um den CIDR-Block jedes Subnetzes zu überprüfen, öffne die Amazon VPC-Konsole.
  7. Suche auf der Registerkarte Subnetze nach den Subnetzen. Notiere dir für jedes Subnetz den CIDR-Block.

AWS CLI

Führe den AWS-CLI-Befehl describe-subnets aus, um den CIDR-Block für jedes Subnetz zu ermitteln:

aws ec2 describe-subnets --filters Name=subnet-id,Values="$(aws dms describe-replication-instances --filters "Name=replication-instance-id,Values=replication-instance-name" --query "ReplicationInstances[*].ReplicationSubnetGroup.Subnets[*].SubnetIdentifier" --output text | sed -e 's/\t/,/g')" --query "Subnets[*].{SubnetId:SubnetId,CidrBlock:CidrBlock}" --output table

Hinweis: Ersetze replication-instance-name durch den Namen deiner Replikations-Instance.

Führe den Befehl describe-replication-instances aus, um die IP-Adressen der Replikations-Instance zu ermitteln:

aws dms describe-replication-instances --filters "Name=replication-instance-id,Values=replication-instance-name" --query "ReplicationInstances[*].{ReplicationInstancePublicIpAddresses:ReplicationInstancePublicIpAddresses,ReplicationInstancePrivateIpAddresses:ReplicationInstancePrivateIpAddresses}" --output table

Hinweis: Ersetze replication-instance-name durch den Namen deiner Replikations-Instance.

Konnektivitätsprobleme für On-Premises Ressourcen lösen

Wenn du die Quell- oder Zieldatenbank On-Premises hostest, stelle sicher, dass die Datenbank eingehende Verbindungen von der AWS DMS-Replikations-Instance zulässt. Erkundige dich zur Bestätigung bei deinem Netzwerkadministrator. Überprüfe auch, dass ein Firewall nicht die Kommunikation mit der Quell- oder Zieldatenbank blockiert.

Stelle sicher, dass du die DNS-Konfiguration korrekt eingerichtet hast. Wenn du eine DNS-Auflösung benötigst, verwende den Amazon Route 53 Resolver. Informationen über die Verwendung eines On-Premises-Nameservers zur Auflösung von Endpunkten mithilfe des Route 53 Resolvers findest du unter Verwendung des eigenen On-Premises-Nameservers. Oder erstelle über die AWS DMS eine neue AWS CLI, um einen Kunden-DNS-Nameserver (--dns-name-servers) zur Lösung von DNS-Problemen zu verwenden. Standardmäßig verwenden AWS DMS-Instances DNS-Namen, die Amazon für Auflösungen bereitstellt. Weitere Informationen findest du unter create-replication-instance.

Hinweis: Wenn du die Quelle oder das Ziel für die Verwendung von benutzerdefiniertem DNS konfigurierst, schlagen die AWS-DMS-Endpunkte möglicherweise fehl.

Überprüfe, dass die Amazon Elastic Compute Cloud (Amazon EC2)-Instance über dieselben Netzwerkkonfigurationen verfügt wie die AWS DMS-Replikations-Instance mit den Konnektivitätsproblemen. Führe zur Problembehandlung bei der Netzwerkkonnektivität zunächst den folgenden Befehl auf der neuen Amazon EC2-Instance aus:

telnet database_IP_address_or_DNS port_number

Hinweis: Ersetze database_IP_address_or_DNS durch die IP-Adresse oder den Domain-Namen der Datenbank, die du für den AWS DMS-Quell- oder Zielendpunkt angibst. Ersetze port_number durch die Portnummer der Datenbank, die du für den AWS DMS-Quell- oder Zielendpunkt angibst.

Führe dann den folgenden Befehl aus:

nslookup domain_name

Hinweis: Ersetze domain_name durch den Domain-Namen der Datenbank, die du für den AWS DMS-Quell- oder Zielendpunkt angibst.

Beheben von Fehlern der nativen Datenbank

Vergewissere dich, dass die folgenden Endpunktkonfigurationen korrekt eingerichtet sind, um systemeigene Datenbankfehler zu beheben:

  • Username
  • Passwort
  • ServerName
    Hinweis: Du musst den ServerName auf den DNS oder die IP-Adresse der On-Premises-Datenbank oder des Amazon Relational Database Service (Amazon RDS)-Endpunkte festlegen.
  • Port
  • Name der Datenbank
    Hinweis: Gib keinen Datenbanknamen für eine MySQL-Quelle oder das MySQL-Ziel an.

Wenn du AWS Secrets Manager verwendest, um eines der vorherigen Felder anzugeben, findest du weitere Informationen unter Verwenden von Geheimnissen für den Zugriff auf AWS DMS-Endpunkte.

Hinweis: Secrets Manager unterstützt die folgenden Zeichen in Passwörtern nicht: Semikolons ( ; ), Punkte ( . ), Doppelpunkte ( : ), Pluszeichen ( + ) und geschweifte Klammern ( { } ).

Informationen zu Fehlern der nativen Datenbank, die im Zusammenhang mit der Quell- oder Zieldatenbank stehen, findest du in der entsprechenden Datenbankdokumentation zur Auflösung. Verwende den Fehlercode und die Fehlermeldung, die du in der AWS DMS-Konsole erhältst.

Wenn du die Anmeldeinformationen für die Endpunktkonfiguration manuell eingibst, achte darauf, dass das Passwort nicht in geschweifte Klammern gesetzt wird. Wenn du geschweifte Klammern verwendest, erhältst du Fehlermeldungen ähnlich der folgenden:

Beispielfehler, wenn Amazon Redshift der Zielendpunkt ist

„[SERVER ]E: RetCode: SQL_ERROR SqlState: 28000 NativeError: 10 Message: [Amazon][Amazon Redshift] (10) Error occurred while trying to connect: [SQLState 28000] connection to server at Your workgroup endpoint (IP), port 5439 failed: FATAL: password authentication failed for user Your Username [1022502] (ar_odbc_conn.c:614)“

Beispielfehler, wenn MySQL der Zielendpunkt ist

„00012920: 2025-05-08T20:27:50:341649 [SERVER ]D: RetCode: SQL_ERROR SqlState: HY000 NativeError: 1045 Message: [MySQL][ODBC 8.0(w) Driver]Access denied for user UserName@IP (using password: YES) [1022502] (ar_odbc_conn.c:614)“

Beispielfehler, wenn SQL Server der Zielendpunkt ist

„00012920: 2025-05-08T21:15:20:185761 [SERVER ]E: RetCode: SQL_ERROR SqlState: 28000 NativeError: 18456 Message: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user UserName. [1022502] (ar_odbc_conn.c:614)“

Hinweis: Wenn du PostgreSQL als Zielendpunkt verwendest, kannst du geschweifte Klammern verwenden.

Weitere Informationen findest du in den Fehler-, Ablaufverfolgungs-, Alarm- oder anderen Protokollen der Quell- oder Zieldatenbank.

Bestätige bei Datenbankzugriffsfehlern die Berechtigungen, die AWS DMS für die spezifische Quelle oder das Ziel benötigt.

Weitere Informationen zum Verschlüsseln über Verbindungen für Quell- und Zielendpunkte mit SSL findest du unter Verwendung von SSL bei AWS DMS.

Ähnliche Informationen

Wie kann ich Fehler bei Amazon S3-Endpunktverbindungstests beheben, wenn ich AWS DMS verwende?

Wie kann ich Verbindungsausfälle und Fehler bei einer AWS DMS-Aufgabe beheben, die Amazon Redshift als Zielendpunkt verwendet?

Wie behebe ich Verbindungsfehler zwischen AWS DMS und einem MongoDB-Quellendpunkt?

Migration von Microsoft SQL Server-Datenbanken zur AWS Cloud