Warum wurde mein Amazon Redshift-Cluster außerhalb des Wartungsfensters neu gestartet?

Lesedauer: 5 Minute
0

Mein Amazon Redshift-Cluster wurde außerhalb des Wartungsfensters neu gestartet. Warum wurde mein Cluster neu gestartet?

Kurzbeschreibung

Ein Amazon Redshift-Cluster wird außerhalb des Wartungsfensters aus den folgenden Gründen neu gestartet:

  • Es wurde ein Problem mit Ihrem Amazon Redshift-Cluster festgestellt.
  • Ein fehlerhafter Knoten im Cluster wurde ersetzt.

Um über alle Clusterneustarts außerhalb Ihres Wartungsfensters informiert zu werden, erstellen Sie eine Ereignisbenachrichtigung für Ihren Amazon Redshift-Cluster.

Lösung

Es wurde ein Problem mit Ihrem Amazon Redshift-Cluster festgestellt

Hier sind einige häufig auftretende Probleme, die einen Clusterneustart auslösen können:

  • Ein Out-of-Memory-Fehler (OOM) auf dem Leader-Knoten: Eine Abfrage, die auf einem Cluster ausgeführt wird, der auf eine neuere Version aktualisiert wurde, kann eine OOM-Ausnahme auslösen und einen Clusterneustart auslösen. Um dieses Problem zu beheben, sollten Sie erwägen, Ihren Patch oder den ausgefallenen Patch rückgängig zu machen.
  • Ein OOM-Fehler, der auf eine ältere Treiberversion zurückzuführen ist: Wenn Sie an einer älteren Treiberversion arbeiten und Ihr Cluster häufig neu gestartet wird, laden Sie die neueste JDBC-Treiberversion herunter. Es hat sich bewährt, die Treiberversion in Ihrer Entwicklungsumgebung zu testen, bevor Sie sie in der Produktion verwenden.
  • Fehler bei Abfragen zur Zustandsprüfung: Amazon Redshift überwacht ständig die Verfügbarkeit seiner Komponenten. Wenn eine Zustandsprüfung fehlschlägt, initiiert Amazon Redshift einen Neustart, um den Cluster so schnell wie möglich in einen fehlerfreien Zustand zu versetzen. Dadurch wird die Anzahl der Ausfallzeiten reduziert.

Verhindern von fehlgeschlagenen Abfragen bei der Zustandsprüfung

Die häufigsten Fehler bei der Zustandsprüfung treten auf, wenn der Cluster über offene Transaktionen mit langer Laufzeit verfügt. Wenn Amazon Redshift Speicher bereinigt, der mit Transaktionen mit langer Laufzeit verbunden ist, kann dieser Prozess dazu führen, dass der Cluster nicht mehr funktioniert. Um solche Situationen zu vermeiden, empfiehlt es sich, nicht abgeschlossene Transaktionen mithilfe der folgenden Abfragen zu überwachen.

Führen Sie für offene Verbindungen mit langer Laufzeit die folgende Beispielabfrage aus:

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;

Führen Sie für Transaktionen mit langer Laufzeit die folgende Beispielabfrage aus:

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;

Nachdem Sie über diese Informationen verfügen, können Sie die noch geöffneten Transaktionen überprüfen, indem Sie die folgende Abfrage ausführen:

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

Verwenden Sie den Befehl PG\ _TERMINATE_BACKEND, um inaktive Sitzungen zu beenden und die Verbindungen freizugeben.

Ein fehlerhafter Knoten im Amazon Redshift-Cluster wurde ersetzt

Jeder Amazon Redshift-Knoten wird auf einer separaten Amazon Elastic Compute Cloud (Amazon EC2)-Instance ausgeführt. Ein ausgefallener Knoten ist eine Instance, die nicht auf Heartbeat-Signale reagiert, die während des Überwachungsprozesses gesendet werden. Heartbeat-Signale überwachen regelmäßig die Verfügbarkeit von Rechenknoten in Ihrem Amazon Redshift-Cluster.

Diese automatisierten Zustandsprüfungen versuchen, den Amazon Redshift-Cluster wiederherzustellen, wenn ein Problem erkannt wird. Wenn Amazon Redshift Hardwareprobleme oder -ausfälle feststellt, werden die Knoten im folgenden Wartungsfenster automatisch ersetzt. Beachten Sie, dass in einigen Fällen fehlerhafte Knoten sofort ersetzt werden müssen, um sicherzustellen, dass Ihr Cluster ordnungsgemäß funktioniert.

Hier sind einige der häufigsten Ursachen für ausgefallene Clusterknoten:

  • EC2-Instance-Ausfall: Wenn sich herausstellt, dass die zugrunde liegende Hardware einer EC2-Instance fehlerhaft ist, wird der fehlerhafte Knoten ausgetauscht, um die Clusterleistung wiederherzustellen. EC2 kennzeichnet die zugrunde liegende Hardware als fehlerhaft, wenn keine Reaktion erfolgt oder automatische Zustandsprüfung nicht bestanden werden.
  • Knotenwechsel aufgrund eines defekten Festplattenlaufwerks eines Knotens: Wenn ein Problem mit der Festplatte auf einem Knoten festgestellt wird, ersetzt Amazon Redshift entweder die Festplatte oder startet den Knoten neu. Wenn der Amazon Redshift-Cluster nicht wiederhergestellt werden kann, wird der Knoten ersetzt oder der Austausch ist geplant.
  • Kommunikationsfehler zwischen den Knoten: Wenn zwischen den Knoten ein Kommunikationsfehler auftritt, werden die Kontrollnachrichten nicht von einem bestimmten Knoten zur angegebenen Zeit empfangen. Kommunikationsfehler zwischen den Knoten werden durch ein zeitweiliges Netzwerkverbindungsproblem oder ein Problem mit dem zugrunde liegenden Host verursacht.
  • Timeout bei der automatischen Erkennung: Ein automatischer Knotenwechsel wird ausgelöst, wenn ein Knoten oder Cluster innerhalb der angegebenen Zeit nicht erreicht werden kann.
  • Ausnahme wegen unzureichenden Arbeitsspeichers (OOM): Eine starke Belastung eines Partikelknotens kann zu OOM-Problemen führen und einen Knotenwechsel auslösen.

Erstellen von Amazon Redshift-Ereignisbenachrichtigungen

Um die Ursache Ihres Clusterneustarts zu ermitteln, erstellen Sie eine Amazon Redshift-Ereignisbenachrichtigung und abonnieren Sie alle Clusterneustarts. In den Ereignisbenachrichtigungen werden Sie auch darüber informiert, ob die Quelle konfiguriert wurde.


Verwandte Informationen

Amazon Redshift-Ereigniskategorien und -meldungen

Verwalten von Ereignisbenachrichtigungen mithilfe der Amazon Redshift-Konsole

Verwalten von Ereignisbenachrichtigungen mithilfe der Amazon Redshift-CLI und API

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr