Perché il mio cluster Amazon Redshift si è riavviato al di fuori della finestra di manutenzione?
Il mio cluster Amazon Redshift è stato riavviato al di fuori della finestra di manutenzione.
Breve descrizione
Un cluster Amazon Redshift si riavvia al di fuori della finestra di manutenzione per i seguenti motivi:
- Amazon Redshift ha rilevato un problema con il cluster.
- Amazon Redshift ha sostituito un nodo non funzionante nel cluster.
Per ricevere una notifica sui riavvii del cluster che si verificano al di fuori della finestra di manutenzione, crea un abbonamento per la notifica degli eventi. L'utente può ricevere notifiche degli eventi anche quando specifica il cluster come tipo di origine. Per ulteriori informazioni, consulta Abbonamenti per notifiche di eventi del cluster Amazon Redshift.
Risoluzione
Amazon Redshift ha rilevato un problema con il cluster
I seguenti problemi possono determinare un riavvio del cluster.
Errore OOM sul nodo leader
Una query eseguita su un cluster aggiornato a una versione successiva può causare un'eccezione di memoria insufficiente (OOM). Per risolvere il problema, ripristina la patch o la patch non riuscita.
Errore OOM dovuto a una versione precedente del driver
Se utilizzi una versione precedente del driver e il cluster subisce frequenti riavvii, scarica la versione più recente del driver Java Database Connectivity (JDBC). È consigliabile testare la versione del driver nell'ambiente di sviluppo prima di utilizzarla in produzione.
Errori nelle query di controllo dell’integrità
Amazon Redshift monitora continuamente la disponibilità dei suoi componenti. Quando un controllo dell'integrità ha esito negativo, Amazon Redshift esegue un riavvio per riportare il cluster a uno stato integro il prima possibile e ridurre i tempi di inattività.
Gli errori più comuni di controllo dell’integrità si verificano quando il cluster ha transazioni aperte di lunga durata. Quando Amazon Redshift ripulisce la memoria associata a transazioni di lunga durata, il cluster può bloccarsi. Per evitare il problema, è consigliabile monitorare le connessioni e le transazioni non chiuse.
Per monitorare le connessioni di lunga durata aperte, esegui questo esempio di query:
select s.process as process_id, c.remotehost || ':' || c.remoteport as remote_address, s.user_name as username, s.db_name, s.starttime as session_start_time, i.starttime as start_query_time, datediff(s,i.starttime,getdate())%86400/3600||' hrs '|| datediff(s,i.starttime,getdate())%3600/60||' mins ' || datediff(s,i.starttime,getdate())%60||' secs 'as running_query_time, i.text as query from stv_sessions s left join pg_user u on u.usename = s.user_name left join stl_connection_log c on c.pid = s.process and c.event = 'authenticated' left join stv_inflight i on u.usesysid = i.userid and s.process = i.pid where username <> 'rdsdb' order by session_start_time desc;
Per monitorare le transazioni di lunga durata aperte, esegui questo esempio di query:
select *,datediff(s,txn_start,getdate())/86400||' days '||datediff(s,txn_start,getdate())%86400/3600||' hrs '||datediff(s,txn_start,getdate())%3600/60||' mins '||datediff(s,txn_start,getdate())%60||' secs' from svv_transactions where lockable_object_type='transactionid' and pid<>pg_backend_pid() order by 3;
Quindi esegui questa query per esaminare le transazioni aperte:
select * from svl_statementtext where xid = <xid> order by starttime, sequence)
Per terminare le sessioni inattive e liberare le connessioni, utilizza il comando PG_TERMINATE_BACKEND.
Amazon Redshift ha sostituito un nodo non funzionante nel cluster
Ogni nodo Amazon Redshift viene eseguito su un'istanza Amazon Elastic Compute Cloud (Amazon EC2) distinta. Un nodo non funzionante è un'istanza che non risponde ai segnali di heartbeat inviati durante il processo di monitoraggio. I segnali di heartbeat sono segnali periodici che monitorano la disponibilità dei nodi di elaborazione di un cluster Amazon Redshift.
Quando Amazon Redshift rileva problemi o guasti hardware, sostituisce automaticamente i nodi durante la successiva finestra di manutenzione. Tuttavia, a volte Amazon Redshift sostituisce immediatamente i nodi non funzionanti in modo che il cluster possa continuare a funzionare correttamente.
I seguenti problemi possono indurre Amazon Redshift a sostituire nodi del cluster:
- L'istanza EC2 non risponde a causa della presenza di un problema sottostante che riguarda l'hardware dell'istanza oppure il controllo automatico dell'integrità non viene superato.
- Il disco nel nodo ha un problema.
- Un errore intermittente di comunicazione di rete o un problema con un host sottostante può causare un errore di comunicazione tra i nodi.
- Il rilevamento di un nodo o cluster è scaduto.
- Un nodo sovraccarico causa problemi di OOM.

Contenuto pertinente
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata un mese fa
- Come posso configurare le notifiche per le finestre di manutenzione di Amazon RDS o Amazon Redshift?AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata un anno fa