Warum kann ich keine Verbindung zu meiner Datenbank-Instance des Typs Amazon RDS für Oracle herstellen?
Ich kann keine Verbindung zu meiner DB-Instance des Typs Amazon Relational Database Service (Amazon RDS) für Oracle herstellen.
Kurzbeschreibung
Im Folgenden sind die häufigsten Gründe für Verbindungsprobleme mit einer DB-Instance des Typs RDS für Oracle aufgeführt:
- Ihre Sicherheitsgruppe, Netzwerk-Zugriffssteuerungslisten (Netzwerk-ACLs) oder lokalen Firewalls sind falsch konfiguriert. Falsche Konfigurationen können den Datenverkehr zur Instance blockieren.
- Ihre Instance befindet sich nicht im Status Verfügbar.
- Sie haben falsche Benutzeranmeldeinformationen verwendet.
- Sie haben den falschen Endpunkt verwendet, um eine Verbindung zur RDS-DB-Instance herzustellen.
- Die Verbindung vom Client zur DB-Instance ist nicht kompatibel.
- Sie haben nicht die erforderlichen Berechtigungen.
Lösung
Verwenden von TNSPING, um die Verbindung zu überprüfen
Hinweis: Sie müssen den Oracle-Client installieren, um das Hilfsprogramm TNSPING verwenden zu können.
Nutzen Sie das Hilfsprogramm TNSPING, um zu überprüfen, ob der Oracle-Client eine Verbindung zur DB-Instance herstellen kann. Wenn Sie den Datenbankeintrag in der Datei tnsnames.ora hinzugefügt haben, führen Sie den folgenden Befehl aus, um zu überprüfen, ob RDS für Oracle erreichbar ist:
tnsping <Service Name>
Wenn Sie den Datenbankeintrag nicht zur Datei tnsnames.ora hinzugefügt haben, führen Sie einen Befehl wie den folgenden aus:
tnsping "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxx-yyyyy.us-east-1.rds.amazonaws.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))" TNS Ping Utility for 64-bit Windows: Version 19.0.0.0.0 - Production on 23-JUL-2023 19:48:22 Copyright (c) 1997, 2019, Oracle. All rights reserved. Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxx-yyyyy.us-east-1.rds.amazonaws.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL))) OK (210 msec)
Wenn TNSPING bestätigt, dass der Oracle-Client keine Verbindung zur DB-Instance herstellen kann, überprüfen Sie die folgenden Konfigurationen.
Überprüfen der VPC-Einstellungen
Wenn Sie von außerhalb einer Virtual Private Cloud (VPC) eine Verbindung zu Ihrer DB-Instance herstellen, vergewissern Sie sich, dass die Eigenschaft Öffentlich zugänglich Ihrer DB-Instance auf Ja gesetzt ist. Wenn die Eigenschaft auf Nein gesetzt ist, wird der DB-Instance keine öffentliche IP-Adresse zugewiesen. Nur Amazon Elastic Compute Cloud (Amazon EC2)-Instances und -Clients innerhalb der VPC können über die private IP-Adresse von Amazon RDS eine Verbindung zu Ihrer Datenbank herstellen.
Für den Zugriff von verschiedenen VPCs oder On-Premises-Netzwerken aus müssen Sie zusätzliche Konfigurationen vornehmen, z. B. VPC-Peering oder AWS Direct Connect. Wenn die Eigenschaft Öffentlich zugänglich auf Ja gesetzt ist, können Clients von außerhalb der VPC über das Internet mit einem Internet-Gateway eine Verbindung zu Ihrer DB-Instance herstellen.
Überprüfen der Sicherheitsgruppeneinstellungen
Vergewissern Sie sich, dass die Sicherheitsgruppe für Ihre DB-Instance den entsprechenden eingehenden Datenverkehr zu Ihrer Datenbank zulässt. Weitere Informationen finden Sie unter Controlling access with security groups.
Überprüfen der Netzwerk-ACL-Einstellungen
Netzwerk-Zugriffssteuerungslisten (Netzwerk-ACLs) dienen als Firewall für Ressourcen in einem bestimmten Subnetz einer VPC. Wenn Ihre VPC Netzwerk-ACLs verwendet, vergewissern Sie sich, dass darin Regeln festgelegt sind, die eingehenden und ausgehenden Datenverkehr zu und von Ihrer Instance zulassen. Standardmäßig lassen Netzwerk-ACLs sämtlichen eingehenden und ausgehenden Datenverkehr zu. Wenn Ihre Netzwerk-ACL restriktiver ist, müssen Sie den Datenverkehr zum Bereich flüchtiger Ports explizit zulassen.
Überprüfen des Netzwerks oder der lokalen Firewall
Ihre Client-Verbindung stammt möglicherweise aus einem On-Premises-Netzwerk. Prüfen Sie, ob Ihr Netzwerk Datenverkehr zu und von den Ports zulässt, die Ihre Instance für eingehende und ausgehende Kommunikation verwendet. Möglicherweise müssen Sie sich an Ihren Netzwerkadministrator wenden, um dies in Erfahrung zu bringen.
Überprüfen der Einstellungen der Routing-Tabellen
Stellen Sie sicher, dass Ihre Routing-Tabelle korrekt mit dem zugehörigen DB-Subnetz konfiguriert ist.
Weitere Problembehebung
Gehen Sie wie folgt vor, um auf weitere Verbindungsprobleme zu prüfen:
-
Führen Sie den folgenden Befehl aus, um die Netzwerkverbindung zu überprüfen. Ersetzen Sie die Werte example-rds-endpoint und example-port-number durch den RDS-Endpunkt und die Portnummer für Ihre DB-Instance.
Hinweis: Amazon RDS akzeptiert keinen Internet Control Message Protocol (ICMP)-Datenverkehr, einschließlich Ping.telnet example-rds-endpoint example-port-number OR curl -v http://<example-rds-endpoint>:<PORT>
-
Führen Sie den Befehl nslookup aus, um zu bestätigen, dass der DNS-Server auf der Clientseite den DNS-Endpunktnamen der DB-Instance in die richtige IP-Adresse auflöst:
nslookup example-instance.example-accountcode.example-region.rds.amazonaws.com
-
Vergewissern Sie sich, dass sich der DB-Instance-Status im Zustand Verfügbar befindet. Datenbankaktivitäten wie Versions- oder Instance-Klassen-Upgrades sowie Multi-AZ-Failover können zu kurzen Ausfällen führen. Ausfälle können den Status der DB-Instance ändern und Verbindungsprobleme verursachen.
-
Die Verbindung erreicht möglicherweise die DB-Instance, schlägt aber dennoch fehl. Vergewissern Sie sich, dass Sie für die Verbindung mit der DB-Instance korrekte Benutzeranmeldeinformationen verwenden. Bei Bedarf können Sie das Passwort für den Hauptbenutzer zurücksetzen.
-
Vergewissern Sie sich, dass Sie über die erforderlichen Berechtigungen verfügen, um eine Verbindung zu Ihrer DB-Instance herzustellen.
Verwenden von Amazon EC2, um eine Verbindung zu Ihrer DB-Instance herzustellen
Um eine Verbindung zwischen Amazon EC2 und Ihrer DB-Instance zu konfigurieren, verwenden Sie die Funktion für automatische Verbindungen in der Amazon-RDS-Konsole.
Hinweis: Um die Funktion für automatische Verbindungen verwenden zu können, müssen sich die EC2-Instance und die DB-Instance in derselben VPC befinden.
Sie können den Connect-Endpunkt der EC2-Instance auch ohne Bastion-Host verwenden, um von der AWS-Managementkonsole aus auf Ressourcen wie Amazon RDS zuzugreifen. Vergewissern Sie sich zunächst, dass Ihr Benutzer über die erforderlichen AWS Identity and Access Management (IAM)-Berechtigungen verfügt, um eine Verbindung zum EC2-Connect-Endpunkt herzustellen. Überprüfen Sie außerdem, ob die Sicherheitsgruppe für Ihre DB-Instance den Datenverkehr vom VPC-Endpunkt zulässt.
Führen Sie den Befehl aws ec2-instance-connect open-tunnel aus, um einen WebSocket-Tunnel zu öffnen:
aws ec2-instance-connect open-tunnel --instance-connect-endpoint-id "VPC Endpoint ID"--private-ip-address "Private IP"--local-port "random port number to use locally" --remote-port "rds port number"
Verwandte Informationen
Troubleshooting connections to your Oracle DB instance
Can't connect to Amazon RDS DB instance
TNSPING auf der Oracle-Website
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren