Perché il mio cluster Amazon Redshift si è riavviato al di fuori della finestra di manutenzione?

5 minuti di lettura
0

Il mio cluster Amazon Redshift è stato riavviato al di fuori della finestra di manutenzione. Perché il mio cluster è stato riavviato?

Breve descrizione

Un cluster Amazon Redshift può venire riavviato al di fuori della finestra di manutenzione per i seguenti motivi:

  • È stato rilevato un problema con il cluster Amazon Redshift.
  • È stato sostituito un nodo in errore del cluster.

Per ricevere una notifica in caso di riavvio del cluster al di fuori della finestra di manutenzione, crea una notifica di evento per il cluster Amazon Redshift.

Soluzione

È stato rilevato un problema con il cluster Amazon Redshift

Di seguito sono riportati alcuni problemi comuni che possono determinare il riavvio del cluster:

  • Un errore memoria esaurita (OOM) sul nodo principale: una query eseguita su un cluster aggiornato a una versione più recente può causare un'eccezione memoria esaurita, che determina il riavvio del cluster. Per risolvere il problema, valuta la possibilità di ripristino allo stato precedente della patch o mancata patch.
  • Un errore di memoria esaurita determinato da una versione precedente del driver: se usi una versione precedente del driver e il cluster viene riavviato di frequente, scarica la versione più recente del driver JDBC. È consigliabile testare la versione del driver nell'ambiente di sviluppo prima di utilizzarla in produzione.
  • **Query di controllo dell’integrità non riuscite:**Amazon Redshift monitora costantemente la disponibilità dei suoi componenti. Quando un controllo dell’integrità fornisce esito negativo, Amazon Redshift procede a un riavvio per riportare il cluster a uno stato integro il prima possibile. In questo modo si riducono i tempi di inattività.

Prevenzione degli errori nelle query di controllo dell’integrità

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 alle transazioni di lunga durata, tale processo può causare il blocco del cluster. Per evitare tali situazioni, è consigliabile monitorare le transazioni non chiuse utilizzando le seguenti query.

Per connessioni aperte di lunga durata, esegui la seguente query di esempio:

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 transazioni aperte di lunga durata, esegui la seguente query di esempio:

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;

Dopo aver ottenuto queste informazioni, puoi esaminare le transazioni che risultano ancora aperte eseguendo la seguente query:

select * from svl_statementtext where xid = <xid> order by starttime, sequence)

Per terminare le sessioni inattive e liberare le connessioni, usa il comando PG_TERMINATE_BACKEND.

È stato sostituito un nodo in errore nel cluster Amazon Redshift

Ogni nodo Amazon Redshift viene eseguito su un'istanza separata di Amazon Elastic Compute Cloud (Amazon EC2). Un nodo in errore è 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 calcolo di un cluster Amazon Redshift.

Al rilevamento di un problema, i controlli dell’integrità automatici cercano di ripristinare il cluster Amazon Redshift. Quando Amazon Redshift rileva problemi o guasti hardware, i nodi vengono automaticamente sostituiti nella finestra di manutenzione successiva. Tieni presente che in alcuni casi, i nodi in errore devono essere sostituiti immediatamente per garantire il corretto funzionamento del cluster.

Ecco alcune delle cause più comuni di errori relativi a nodi del cluster in errore:

  • **Esito negativo di un'istanza EC2:**Quando l'hardware sottostante di un'istanza EC2 risulta guasto, il nodo in errore viene quindi sostituito per ripristinare le prestazioni del cluster. EC2 contrassegna l'hardware sottostante come in errore in caso di mancanza di risposta o di mancato superamento dei controlli dell’integrità automatici.
  • **Sostituzione del nodo a causa di un'unità disco del nodo in errore:**Quando si riscontra un problema con il disco di un nodo, Amazon Redshift sostituisce il disco o riavvia il nodo. Se il cluster Amazon Redshift non riesce a eseguire il ripristino, il nodo viene sostituito oppure ne viene pianificata la sostituzione.
  • **Errore di comunicazione tra nodi:**Se si verifica un errore di comunicazione tra nodi, i messaggi di controllo non vengono ricevuti da un particolare nodo all'ora specificata. Gli errori di comunicazione tra nodi sono dovuti a un problema di connessione di rete intermittente oppure a un problema con l'host sottostante.
  • Timeout individuazione: viene attivata una sostituzione automatica del nodo se non è possibile raggiungere un nodo o un cluster entro il tempo specificato.
  • Eccezione memoria esaurita (OOM): un carico elevato su un particolare nodo può causare problemi di memoria esaurita, determinando la sostituzione del nodo.

Creazione di notifiche di eventi Amazon Redshift

Per identificare la causa del riavvio del cluster, crea una notifica di evento Amazon Redshift, esegui la sottoscrizione a qualsiasi notifica di riavvio del cluster. Le notifiche degli eventi ti avvisano anche se la fonte è stata configurata.


Informazioni correlate

Categorie di eventi Amazon Redshift e messaggi di evento

Gestione delle notifiche degli eventi tramite la console Amazon Redshift

Gestione delle notifiche degli eventi tramite la CLI e l'API di Amazon Redshift

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa