Risolvere i problemi di connessione ad Azure Cosmos DB for PostgreSQL
SI APPLICA A: Azure Cosmos DB for PostgreSQL (basato su estensione database Citus per PostgreSQL)
I problemi di connessione possono essere dovuti a diversi motivi, ad esempio:
- Impostazioni del firewall
- Timeout della connessione
- Informazioni di accesso non corrette
- Limite di connessioni raggiunto per il cluster
- Problemi con l'infrastruttura del servizio
- Manutenzione del servizio
- Failover del nodo coordinatore in nuovo hardware
I problemi di connessione a Azure Cosmos DB for PostgreSQL possono essere classificati a grandi linee come segue:
- Errori temporanei (di breve durata o intermittenti)
- Errori non temporanei o permanenti (errori che si ripetono regolarmente)
Risolvere i problemi causati da errori temporanei
Gli errori temporanei si verificano per diversi motivi. I più comuni includono manutenzione del sistema, errori con hardware o software e aggiornamenti vCore del nodo coordinatore.
L'abilitazione della disponibilità elevata per i nodi del cluster può attenuare automaticamente questi tipi di problemi. Tuttavia, l'applicazione deve comunque essere preparata a perdere brevemente la connessione. Inoltre altri eventi necessitano di più tempo per l'attenuazione, ad esempio quando una transazione di grandi dimensioni provoca un ripristino a esecuzione prolungata.
Passaggi per risolvere problemi di connettività temporanei
- Controllare nel Dashboard dei servizi di Microsoft Azure le eventuali interruzioni note che si sono verificate durante il periodo in cui l’applicazione ha segnalato errori.
- Le applicazioni che si connettono a un servizio cloud, ad esempio Azure Cosmos DB for PostgreSQL, devono prevedere errori temporanei e reagire in modo normale. Ad esempio, le applicazioni devono implementare la logica di retry per gestire questi errori anziché presentarli agli utenti come errori dell'applicazione.
- Quando il cluster sta per raggiungere i limiti delle risorse, gli errori possono sembrare problemi di connettività temporanei. In questo senso, possono risultare utili l'aumento della RAM del nodo, o l'aggiunta di nodi di lavoro e il ribilanciamento dei dati.
- Se i problemi di connettività continuano o durano più di 60 secondi, oppure se si verificano più volte al giorno, inviare una richiesta di supporto tecnico di Azure selezionando Ottieni supporto nel sito supporto tecnico di Azure.
Risolvere gli errori persistenti
Se l'applicazione continua a non connettersi ad Azure Cosmos DB for PostgreSQL, le cause più comuni sono una configurazione errata del firewall o un errore dell'utente.
- Configurazione del firewall nel nodo coordinatore: assicurarsi che il firewall del server sia configurato per consentire le connessioni dal client, inclusi server proxy e gateway.
- Configurazione del firewall nel client: il firewall nel client deve consentire le connessioni al server di database. Alcuni firewall richiedono di autorizzare non solo l'applicazione per nome, ma anche gli indirizzi IP e le porte del server.
- Errore dell'utente: controllare attentamente la stringa di connessione. Alcuni parametri, ad esempio il nome del server, potrebbero non essere stati digitati correttamente. È possibile trovare stringhe di connessione per vari framework di linguaggi e psql nel portale di Azure. Passare alla pagina Stringhe di connessione nel cluster. Tenere presente anche che i cluster hanno un solo database e il relativo nome predefinito è citus.
Passaggi per risolvere problemi di connettività permanenti
- Impostare le regole del firewall per consentire l'indirizzo IP del client. Ai soli fini di test temporanei, impostare una regola del firewall usando 0.0.0.0 come indirizzo IP iniziale e 255.255.255.255 come indirizzo IP finale. Tale regola apre il server a tutti gli indirizzi IP. Se questa regola risolve il problema di connettività, rimuoverla e creare una regola del firewall per un indirizzo o un intervallo di indirizzi IP adeguatamente limitato.
- Verificare che la porta 5432 sia aperta per le connessioni in uscita in tutti i firewall tra il client e Internet (e la 6432 stia usando il pooling di connessione).
- Verificare la stringa di connessione e le altre impostazioni di connessione.
- Controllare l'integrità del servizio nel dashboard.
Passaggi successivi
- Informazioni sui concetti delle regole del firewall in Azure Cosmos DB for PostgreSQL
- Informazioni su come gestire le regole del firewall per Azure Cosmos DB for PostgreSQL