Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Risoluzione dei problemi di connessione in Amazon Redshift - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi di connessione in Amazon Redshift

Se riscontri anomalie nella connessione al cluster da uno strumento client SQL, è possibile circoscrivere il problema verificando diversi elementi. Se stai utilizzando certificati di server o SSL, prima rimuovi questa complessità mentre risolvi il problema relativo alla connessione. Quando trovi una soluzione, aggiungila nuovamente. Per ulteriori informazioni, consulta Configurazione delle opzioni di sicurezza per le connessioni.

Importante

Amazon Redshift ha modificato la modalità di gestione dei certificati SSL. In caso di problemi di connessione tramite SSL, potrebbe essere necessario aggiornare i tuoi certificati CA radice attendibili correnti. Per ulteriori informazioni, consulta Passaggio ai certificati ACM per connessioni SSL.

La seguente sezione include alcuni messaggi di errore di esempio e le possibili soluzioni per problemi di connessione. Dal momento che diversi strumenti client SQL forniscono messaggi di errore differenti, questo elenco non è completo ma rappresenta un buon punto di partenza per la risoluzione dei problemi.

Connessione dall'esterno di Amazon EC2 e problema di timeout del firewall

Al momento dell'esecuzione di query lunghe, come il comando COPY, la connessione del tuo client al database sembra scadere o interrompersi. In questo caso, è possibile che la console Amazon Redshift mostri che la query è stata completata, ma lo strumento del client stesso sembra che la stia ancora eseguendo. I risultati della query potrebbero essere mancanti o incompleti, a seconda del momento in cui la connessione si è interrotta.

Possibili soluzioni

Questo problema si verifica quando ti connetti ad Amazon Redshift da un computer diverso da un'istanza Amazon EC2 . In questo caso, le connessioni inattive vengono terminate da un componente di rete intermedio, ad esempio un firewall, dopo un periodo di inattività. Questo comportamento è tipico quando ci si connette da una rete privata virtuale (VPN) o dalla rete locale.

Per evitare questi timeout, ti consigliamo di apportare le seguenti modifiche:

  • Aumenta i valori del sistema client che gestiscono i timeout TCP/IP. Esegui queste modifiche sul computer che stai utilizzando per connetterti al cluster. Il periodo di timeout deve essere regolato per il tuo client e la tua rete. Per ulteriori informazioni, consulta Modifica delle impostazioni del timeout TCP/IP.

  • A scelta, puoi configurare il comportamento keepalive a livello DSN. Per ulteriori informazioni, consulta Modifica delle impostazioni del timeout DSN.

Modifica delle impostazioni del timeout TCP/IP

Per modificare le impostazioni del timeout TCP/IP, configurale in base al sistema operativo che utilizzi per connetterti al cluster.

  • Linux: se il client è in esecuzione su Linux, emettere il comando seguente come utente root per cambiare le impostazioni di timeout per la sessione corrente:

    /sbin/sysctl -w net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5

    Per mantenere le impostazioni, crea o modifica il file /etc/sysctl.conf con i seguenti valori, quindi riavvia il sistema.

    net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
  • Windows: se il tuo client funziona su Windows, modifica i valori per le seguenti impostazioni di registro in HKEY_LOCAL_MACHINE\ SYSTEM\\ Services\ Tcpip\ CurrentControlSet Parameters\:

    • KeepAliveTime: 30000

    • KeepAliveInterval: 1000

    • TcpMaxDataRetransmissions: 10

    Queste impostazioni utilizzano il tipo di dati DWORD. Se non esistono nel percorso di registro, è possibile creare le impostazioni e specificare questi valori raccomandati. Per ulteriori informazioni sulla modifica del registro di Windows, consultare la documentazione di Windows.

    Dopo aver impostato questi valori, riavvia il computer per rendere effettive le modifiche.

  • Mac: se il client è in esecuzione su un Mac, emettere i comandi seguenti per cambiare le impostazioni di timeout per la sessione corrente:

    sudo sysctl net.inet.tcp.keepintvl=200000 sudo sysctl net.inet.tcp.keepidle=200000 sudo sysctl net.inet.tcp.keepinit=200000 sudo sysctl net.inet.tcp.always_keepalive=1

    Per mantenere le impostazioni, crea o modifica il file /etc/sysctl.conf con i seguenti valori:

    net.inet.tcp.keepidle=200000 net.inet.tcp.keepintvl=200000 net.inet.tcp.keepinit=200000 net.inet.tcp.always_keepalive=1

    Riavvia il computer, quindi esegui i comandi seguenti per verificare che i valori siano stati impostati.

    sysctl net.inet.tcp.keepidle sysctl net.inet.tcp.keepintvl sysctl net.inet.tcp.keepinit sysctl net.inet.tcp.always_keepalive

Modifica delle impostazioni del timeout DSN

A scelta, è possibile configurare il comportamento keepalive a livello DSN. Puoi farlo aggiungendo o modificando i parametri seguenti nel file odbc.ini:

KeepAlivesCount

Il numero di pacchetti keepalive TCP che possono essere persi prima che la connessione sia considerata interrotta.

KeepAlivesIdle

Il numero di secondi di inattività prima che il driver invii un pacchetto keepalive TCP.

KeepAlivesInterval

Il numero di secondi tra ciascuna ritrasmissione di keepalive TCP.

Se questi parametri non esistono o se hanno il valore 0, il sistema utilizza i parametri keepalive specificati per TCP/IP to determine DSN keepalive behavior. On Windows, you can find the TCP/IP i parametri nel registro inHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\. In Linux e macOS, i parametri TCP/IP sono disponibili nel file sysctl.conf.

Connessione rifiutata o non riuscita

Quando la connessione viene rifiutata o fallita, è possibile che venga visualizzato un errore simile a uno dei seguenti.

  • «Impossibile stabilire una connessione a<endpoint>

  • "Could not connect to server: Connection timed out. Il server è in esecuzione sull'host '<endpoint>' e accetta connessioni TCP/IP sulla porta?» '<port>'

  • "Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections." ("Connessione rifiutata. Controlla che il nome host e la porta siano corretti e che il postmaster accetti le connessioni TCP/IP.")

Possibili soluzioni

Generalmente, quando ricevi un messaggio di errore che indica l'impossibilità di stabilire una connessione, ciò significa che c'è un problema con l'autorizzazione per l'accesso al cluster o con il traffico di rete che raggiunge il cluster.

Per connetterti al cluster da uno strumento client esterno alla rete in cui si trova il cluster stesso, aggiungi una regola di ingresso al gruppo di sicurezza del cluster. La configurazione delle regole dipende dal fatto che il cluster Amazon Redshift sia creato in un cloud privato virtuale (VPC):

  • Se il un cluster Amazon Redshift è stato creato in un cloud privato virtuale (VPC) basato su Amazon VPC, aggiungi l'indirizzo CIDR/IP del client al gruppo di sicurezza VPC che specifica il CIDR client/indirizzo IP in Amazon VPC. Per ulteriori informazioni sulla configurazione dei gruppi di sicurezza VPC per il cluster, consulta Risorse Redshift in un VPC.

  • Se è stato creato un cluster Amazon Redshift all'esterno di un VPC, è necessario aggiungere l'indirizzo CIDR/IP del client al gruppo di sicurezza del cluster in Amazon Redshift. Per ulteriori informazioni sulla configurazione di gruppi di sicurezza dei cluster, consulta Gruppi di sicurezza Amazon Redshift.

Se tenti di connetterti al cluster da uno strumento client eseguito su un' EC2istanza Amazon, aggiungi anche una regola in entrata. In questo caso, aggiungi una regola al gruppo di sicurezza del cluster. La regola deve specificare il gruppo EC2 di sicurezza Amazon associato all' EC2 istanza Amazon dello strumento client.

In alcuni casi, potrebbe essere presente un layer tra il client e il server, ad esempio un firewall. In questi casi, assicurarti che il firewall accetti le connessioni in ingresso sulla porta configurata per il cluster.

Incompatibilità tra client e driver

Se il client e il driver non sono compatibili, potresti ricevere un errore che dice: «Il DSN specificato contiene una mancata corrispondenza dell'architettura tra il driver e l'applicazione».

Possibili soluzioni

Quando tenti di connetterti e ricevi un errore relativo a una mancata corrispondenza dell'architettura, ciò significa che lo strumento client e il driver non sono compatibili. Ciò si verifica perché la loro architettura di sistema non corrisponde. Ad esempio, ciò può accadere se disponi di uno strumento client a 32 bit ma hai installato una versione a 64 bit del driver. Talvolta gli strumenti client a 64 bit possono utilizzare driver a 32 bit, ma non è possibile usare applicazioni a 32 bit con driver a 64 bit. Assicurati che il driver e lo strumento client utilizzino la stessa versione dell'architettura di sistema.

Query bloccate e talvolta impossibilitate a raggiungere il cluster

Riscontri un problema con il completamento delle query, che sembrano in esecuzione ma che si bloccano nello strumento client SQL. Talvolta le query non vengono visualizzate nel cluster, come nelle tabelle di sistema o nella console Amazon Redshift.

Possibili soluzioni

Questo problema può verificarsi a causa della perdita dei pacchetti. In questo caso, vi è una differenza nella dimensione massima unità di trasmissione (MTU) nel percorso di rete tra due host Internet Protocol (IP). La dimensione della MTU determina la dimensione massima, espressa in byte, di un pacchetto che può essere trasferito in un frame Ethernet su una connessione di rete. In AWS, alcuni tipi di EC2 istanze Amazon supportano un MTU di 1500 (frame Ethernet v2) e altri tipi di istanza supportano un MTU di 9001 (jumbo frame TCP/IP).

Per evitare problemi associati alle differenze di dimensione della MTU, ti consigliamo di procedere in uno dei modi seguenti:

  • Se il tuo cluster utilizza la piattaforma EC2 -VPC, configura il gruppo di sicurezza Amazon VPC con una regola ICMP (Internet Control Message Protocol) personalizzata in entrata che restituisca. Destination Unreachable Questa regola indica all'host di origine di utilizzare la dimensione della MTU minima sul percorso di rete. Per i dettagli su questo approccio, consulta Configurazione dei gruppi di sicurezza per autorizzare il messaggio ICMP "Destination Unreachable".

  • Se il tuo cluster utilizza la piattaforma EC2 -Classic o non puoi consentire la regola ICMP in entrata, disabilita i jumbo frame TCP/IP in modo da utilizzare i frame Ethernet v2. Per i dettagli su questo approccio, consulta Configurazione della MTU di un'istanza.

Configurazione dei gruppi di sicurezza per autorizzare il messaggio ICMP "Destination Unreachable"

In presenza di una differenza della dimensione della MTU nella rete tra due host, verifica innanzitutto che le impostazioni della tua rete non blocchino l'individuazione della MTU del percorso (PMTUD). La PMTUD consente all'host ricevente di rispondere all'host di origine con il seguente messaggio ICMP: Destination Unreachable: fragmentation needed and DF set (ICMP Type 3, Code 4). Questo messaggio indica all'host di origine di utilizzare la dimensione della MTU più piccola sul percorso di rete per inviare nuovamente la richiesta. Senza questa negoziazione, può verificarsi la perdita del pacchetto perché la richiesta è troppo grande per l'host ricevente. Per ulteriori informazioni su questo messaggio ICMP, visitate il sito Web dell'Internet Engineering Task Force (RFC792IETF).

Se non si configura in modo esplicito questa regola in entrata ICMP per il gruppo di sicurezza Amazon VPC, la PMTUD viene bloccata. I gruppi di sicurezza sono firewall virtuali che specificano le regole per il traffico in entrata e in uscita verso un'istanza. AWS Per informazioni sui gruppi di sicurezza dei cluster Amazon Redshift, consultare Gruppi di sicurezza Amazon Redshift. Per i cluster che utilizzano la piattaforma EC2 -VPC, Amazon Redshift utilizza gruppi di sicurezza VPC per consentire o negare il traffico verso il cluster. Per impostazione predefinita, i gruppi di sicurezza sono bloccati e rifiutano tutto il traffico in entrata. Per informazioni su come impostare le regole in entrata e in uscita per le istanze EC2 -Classic o EC2 -VPC, consulta Differenze tra le istanze in EC2 -Classic e un VPC nella Amazon User Guide. EC2

Per ulteriori informazioni su come aggiungere regole ai gruppi di sicurezza VPC, consultare Gruppi di sicurezza VPC. Per ulteriori informazioni sulle impostazioni PMTUD specifiche richieste in questa regola, consulta Path MTU discovery nella Amazon User Guide. EC2

Configurazione della MTU di un'istanza

In alcuni casi, il tuo cluster potrebbe utilizzare la piattaforma EC2 -Classic oppure non puoi consentire la regola ICMP personalizzata per il traffico in entrata. In questi casi, ti consigliamo di regolare l'MTU a 1500 sull'interfaccia di rete (NIC) delle EC2 istanze da cui ti connetti al cluster Amazon Redshift. Questo adeguamento disabilita i jumbo frame TCP/IP per garantire che le connessioni utilizzino in modo coerente la stessa dimensione del pacchetto. Tuttavia, questa opzione riduce la velocità effettiva massima della rete per l'intera istanza, non solo per le connessioni ad Amazon Redshift. Per ulteriori informazioni, consultare le procedure seguenti.

Per impostare la MTU su un sistema operativo Microsoft Windows

Se il client viene eseguito in un sistema operativo Microsoft Windows, è possibile rivedere e impostare il valore MTU per la scheda Ethernet tramite il comando netsh.

  1. Eseguire il seguente comando per determinare il valore MTU corrente:

    netsh interface ipv4 show subinterfaces
  2. Rivedere il valore MTU per la scheda Ethernet nell'output.

  3. Se il valore non è 1500, eseguire il seguente comando per impostarlo:

    netsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistent

    Dopo aver impostato questo valore, riavviare il computer per rendere effettive le modifiche.

Per impostare la MTU su un sistema operativo Linux

Se il client viene eseguito in un sistema operativo Linux, è possibile rivedere e impostare il valore MTU tramite il comando ip.

  1. Eseguire il seguente comando per determinare il valore MTU corrente:

    $ ip link show eth0
  2. Rivedere il valore successivo a mtu nell'output.

  3. Se il valore non è 1500, eseguire il seguente comando per impostarlo:

    $ sudo ip link set dev eth0 mtu 1500
Per impostare la MTU su un sistema operativo Mac
  • Seguire le istruzioni sul sito di supporto macOS per How to change the MTU for troubleshooting purposes. Per ulteriori informazioni, cercare nel sito del supporto.

Impostazione del parametro delle dimensioni del recupero JDBC

Per impostazione predefinita, il driver JDBC raccoglie tutti i risultati di una query in una sola volta. Di conseguenza, quando tenti di recuperare un set di risultati di grandi dimensioni tramite una connessione JDBC, potresti riscontrare un errore sul lato client. out-of-memory Per consentire al client di recuperare i set di risultati in batch anziché in un singolo recupero, impostate il parametro all-or-nothing JDBC fetch size nell'applicazione client.

Nota

La dimensione del recupero non è supportata da ODBC.

Per le migliori prestazioni, imposta la dimensione del recupero sul valore più alto che non porti a errori di esaurimento della memoria. Un valore della dimensione del recupero più basso causa più viaggi del server, quindi tempi di esecuzione prolungati. Il server riserva le risorse, tra cui lo slot della query WLM e la memoria associata, fino al momento in cui il client recupera tutto l'insieme di risultati o la query viene cancellata. Quando ottimizzi in modo appropriato la dimensione del recupero, queste risorse vengono rilasciate più velocemente rendendole disponibili alle altre query.

Nota

Se devi estrarre set di dati di grandi dimensioni, ti consigliamo di utilizzare un'istruzione UNLOAD per trasferire i dati su Amazon S3. Quando usi UNLOAD, i nodi di calcolo lavorano in parallelo per velocizzare il trasferimento dei dati.

Per ulteriori informazioni sull'impostazione del parametro della dimensione del recupero di JDBC, consultare Ottenimento di risultati basato su un cursore nella documentazione PostgreSQL.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.