Perché le connessioni al database sulla mia istanza di database di RDS si sono interrotte?

Ultimo aggiornamento: 19/07/2022

Le connessioni al database di Amazon Relational Database Service (Amazon RDS) si sono interrotte improvvisamente, causando tempi di inattività imprevisti. Perché le mie connessioni al database si interrompono?

Risoluzione

Le connessioni al database di Amazon RDS possono interrompersi per vari motivi. Per comprendere la causa dell'interruzione delle connessioni al database, stabilisci se le interruzioni si sono verificate durante o al di fuori della finestra di manutenzione per l'istanza al database di RDS.

Se le connessioni al database si interrompono durante la finestra di manutenzione RDS

Durante la finestra di manutenzione dell'istanza di database, AWS esegue attività di manutenzione che possono causare l'interruzione delle connessioni al database.

Aggiornamento automatico della versione secondaria (se abilitato su Amazon RDS)

Quando Amazon RDS designa una nuova versione secondaria preferita del motore e l'istanza di database esegue una versione precedente, Amazon RDS esegue un aggiornamento durante la finestra di manutenzione pianificata se la funzione di Aggiornamento automatico della versione secondaria è attivata. Ciò può causare l'interruzione delle connessioni al database durante l'aggiornamento della versione secondaria, poiché qualsiasi aggiornamento della versione a livello di motore comporta tempi di inattività di RDS.

Manutenzione hardware

Amazon RDS pianifica la manutenzione hardware quando gli host sottostanti delle istanze di database sono in esecuzione su hardware che presenta danni. La manutenzione hardware viene eseguita durante la finestra di manutenzione configurata per le istanze di database. Prima che la manutenzione sia pianificata, riceverai una notifica via e-mail sulle finestre di manutenzione hardware programmate con l'ora della manutenzione e le zone di disponibilità interessate.

Manutenzione del sistema operativo

Amazon RDS esegue periodicamente aggiornamenti del sistema operativo sottostante durante la finestra di manutenzione configurata per l'istanza di database. Se l'aggiornamento del sistema operativo comporta tempi di inattività, Amazon RDS pianifica la manutenzione per la finestra successiva. Se l'aggiornamento del sistema operativo non richiede manutenzione, puoi posticiparne la finestra adattando la finestra di manutenzione preferita. Se è necessaria la manutenzione, l'aggiornamento del sistema operativo non può essere posticipato e viene applicato durante la finestra di manutenzione successiva.

Modifiche eseguite su Amazon RDS selezionando "Apply in Next Maintenance Window" (Applica nella finestra di manutenzione successiva)

Quando si eseguono modifiche alla configurazione di RDS, puoi scegliere se applicarle immediatamente o nella finestra di manutenzione successiva. Se scegli di eseguire le modifiche nella finestra di manutenzione successiva, non sono presenti tempi di inattività immediati. Se applicate durante la successiva finestra di manutenzione, le seguenti modifiche potrebbero causare tempi di inattività:

  • Ridenominazione gli identificatori delle istanze di database
  • Modifica delle classi delle istanze di database
  • Modifica dei periodi di conservazione dei backup
  • Modifica delle porte del database
  • Modifica della versione del motore di database
  • Collegamento di un nuovo gruppo di sottorete

Consulta le DB instances settings information (Informazioni sulle impostazioni delle istanze di database) per comprendere le impostazioni dettagliate disponibili per la modifica, insieme all'impatto e al tempo di inattività delle istanze di database.

Se le connessioni al database vengono interrotte al di fuori della finestra di manutenzione RDS

Le connessioni al database potrebbero interrompersi se raggiungono il timeout lato client/server.

Parametri di timeout del client configurati al termine dell'applicazione

I parametri di timeout del client configurati al termine dell'applicazione possono causare l'interruzione delle connessioni al database. Se il tempo di elaborazione di una query è troppo lungo, la sessione potrebbe terminare in modo errato lato client. Per risolvere questo problema, aumenta l'impostazione del timeout del client.

Parametri di timeout del server configurati nel gruppo di parametri personalizzati collegato ad Amazon RDS

Le TCP keepalive impostate in modo aggressivo causano timeout di connessione client. I timeout si verificano quando il client è inattivo per la quantità di tempo impostata in tcp_keepalives_idle e il numero di messaggi impostati in tcp_keepalives_count. Un timeout può verificarsi anche quando una connessione è in attesa di una risposta del server mentre le query a esecuzione prolungata sono in esecuzione sull'istanza database.

Se idle_in_transaction_session_timeout è impostato su un valore inferiore rispetto alle 24 ore predefinite, vengono terminate tutte le sessioni rimaste inattive oltre il valore configurato. Se si imposta questo valore in modo aggressivo, anche se le query in esecuzione richiedono più tempo per ottenere una risposta dal server, la connessione si interrompe quando la sessione è inattiva per un periodo più lungo del valore di timeout configurato.

Riavvio/failover del database non pianificati

Un problema transitorio con l'hardware sottostante potrebbe causare la perdita di comunicazione con l'istanza di database. Con la sostituzione dell'host sottostante, un problema hardware potrebbe avviare il failover in un'implementazione multi-AZ e il ripristino in un'implementazione Single-AZ. Questo problema potrebbe rendere l'istanza database non integra, poiché il sistema di monitoraggio RDS non è stato in grado di comunicare con l'istanza RDS per eseguire i controlli dell'integrità.

Un problema di rete transitorio interessa l'host sottostante dell'istanza di database. Il sistema di monitoraggio interno rileva questo problema e avvia in modo proattivo il ripristino per un'implementazione Single-AZ e il failover per le implementazioni multi-AZ.

L'istanza di database non risponde quando un carico di database elevato provoca un crunch di memoria nel database che impedisce al sistema di monitoraggio RDS di contattare l'host sottostante. Per evitare il failover e il riavvio delle istanze di database a causa di un sovraccarico del database, configura i parametri di memoria sull'istanza in modo appropriato.

Un problema transitorio con il sottosistema di storage sottostante può portare a una latenza elevata per un volume Amazon Elastic Block Store (Amazon EBS), identificato da un sistema di monitoraggio interno. Come misura proattiva, il sistema di monitoraggio avvia il ripristino per un'implementazione Single-AZ. In un'implementazione multi-AZ viene eseguito un failover su secondario.