Perché non riesco a connettermi all'istanza database Amazon RDS per Oracle?

5 minuti di lettura
0

Non riesco a connettermi all'istanza database Amazon Relational Database Service (Amazon RDS) per Oracle.

Breve descrizione

Di seguito sono riportati i motivi più comuni dei problemi di connessione a un'istanza database RDS per Oracle:

  • Il gruppo di sicurezza, la lista di controllo degli accessi alla rete (ACL) o i firewall locali non sono configurati correttamente. Le configurazioni errate potrebbero bloccare il traffico verso l'istanza.
  • L'istanza non si trova nello stato Disponibile.
  • Hai utilizzato credenziali utente errate.
  • L'endpoint utilizzato per connettersi all'istanza database RDS non è corretto.
  • La connessione dal client all'istanza database non è compatibile.
  • Non disponi delle autorizzazioni necessarie.

Soluzione

Usa TNSPING per verificare la connessione

Nota: per utilizzare l'utility TNSPING è necessario installare il client Oracle.

Usa l'utility TNSPING per verificare se il client Oracle può connettersi all'istanza database. Se hai aggiunto la voce del database al file tnsnames.ora, esegui il comando seguente per verificare se RDS per Oracle è raggiungibile:

tnsping <Service Name>

Se non hai aggiunto la voce del database al file tnsnames.ora, esegui un comando simile al seguente:

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)

Se TNSPING conferma che il client Oracle non è in grado di connettersi all'istanza database, controlla le configurazioni seguenti.

Verifica le impostazioni del VPC

Se ti connetti all'istanza database dall'esterno di un cloud privato virtuale (VPC), assicurati che la proprietà Accessibile pubblicamente dell'istanza database sia impostata su . Se la proprietà è impostata su No, all'istanza database non viene assegnato un indirizzo IP pubblico. Solo le istanze e i client Amazon Elastic Compute Cloud (Amazon EC2) all'interno del VPC possono connettersi al database tramite l'indirizzo IP privato di Amazon RDS.

Per accedere da VPC diversi o reti on-premises, è necessario impostare delle configurazioni aggiuntive, come il peering VPC o AWS Direct Connect. Se la proprietà Accessibile pubblicamente è impostata su , i client esterni al VPC possono connettersi all'istanza database tramite Internet utilizzando un gateway Internet.

Verifica le impostazioni del gruppo di sicurezza

Assicurati che il gruppo di sicurezza per l'istanza database consenta il traffico in entrata appropriato verso il database. Per ulteriori informazioni, consulta Controlling access with security groups.

Verifica le impostazioni delle ACL di rete

Le liste di controllo degli accessi alla rete (ACL) fungono da firewall per le risorse in una sottorete specifica di un VPC. Se il VPC dispone di ACL di rete, assicurati che dispongano delle regole appropriate per consentire il traffico in entrata e in uscita da e verso l'istanza. Per impostazione predefinita, le ACL di rete consentono tutto il traffico in entrata e in uscita. Se l'ACL di rete è più restrittiva, devi consentire esplicitamente il traffico verso l'intervallo di porte temporaneo.

Verifica il firewall di rete o locale

La connessione del client potrebbe provenire da una rete on-premises. Assicurati che la rete consenta il traffico da e verso le porte utilizzate dall'istanza database per le comunicazioni in entrata e in uscita. Potrebbe essere necessario contattare l'amministratore di rete per ottenere tali informazioni.

Verifica le impostazioni della tabella di routing

Assicurati che la tabella di routing sia configurata correttamente con la sottorete database associata.

Ulteriori procedure di risoluzione dei problemi

Per risolvere altri problemi di connessione, intraprendi le seguenti azioni:

  • Esegui il comando seguente per verificare la connessione di rete. Sostituisci i valori example-rds-endpoint ed example-port-number con l'endpoint RDS e il numero di porta dell'istanza database.
    Nota: Amazon RDS non supporta il traffico ICMP (Internet Control Message Protocol), incluso il comando ping.

    telnet example-rds-endpoint example-port-number  
    OR   
    curl -v http://<example-rds-endpoint>:<PORT>
  • Esegui il comando nslookup per confermare che il server DNS sul lato client risolva il nome dell'endpoint DNS dell'istanza database nell'indirizzo IP corretto:

    nslookup  example-instance.example-accountcode.example-region.rds.amazonaws.com
  • Assicurati che lo stato dell'istanza database sia Disponibile. Le attività del database, come l'aggiornamento della versione, l'aggiornamento della classe di istanza o il failover Multi-AZ, potrebbero causare brevi interruzioni. Tali interruzioni potrebbero modificare lo stato dell'istanza database e causare problemi di connessione.

  • La connessione potrebbe raggiungere l'istanza database ma continuare ad avere esito negativo. Assicurati che le credenziali utente utilizzate per connetterti all'istanza database siano corrette. Se necessario, puoi reimpostare la password dell'utente principale.

  • Conferma di disporre delle autorizzazioni necessarie per connetterti all'istanza database.

Usa Amazon EC2 per connetterti all'istanza database

Per configurare una connessione tra Amazon EC2 e l'istanza database, utilizza la funzionalità di connessione automatica nella console Amazon RDS.

Nota: per utilizzare la funzionalità di connessione automatica, l'istanza EC2 e l'istanza database devono trovarsi nello stesso VPC.

Puoi inoltre utilizzare l'endpoint di connessione alle istanze EC2 senza host bastione per accedere a determinate risorse, come Amazon RDS, dalla console di gestione AWS. Innanzitutto, verifica che l'utente disponga delle autorizzazioni AWS Identity and Access Management (IAM) necessarie per connettersi all'endpoint di connessione alle istanze EC2. Inoltre, verifica che il gruppo di sicurezza per l'istanza database consenta il traffico dall'endpoint VPC.

Esegui il comando aws ec2-instance-connect open-tunnel per aprire un tunnel WebSocket:

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"

Informazioni correlate

Troubleshooting connections to your Oracle DB instance

Can't connect to Amazon RDS DB instance

TNSPING sul sito Web di Oracle

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa