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

Lesedauer: 4 Minute
0

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

Kurzbeschreibung

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

  • Amazon Redshift hat ein Problem mit deinem Cluster festgestellt.
  • Amazon Redshift hat einen defekten Knoten im Cluster ersetzt.

Um über Cluster-Neustarts informiert zu werden, die außerhalb des Wartungsfensters stattfinden, erstelle ein Abonnement für Ereignisbenachrichtigungen. Die Ereignisbenachrichtigungen können dich auch benachrichtigen, wenn du den Cluster als Quelltyp angibst. Weitere Informationen findest du unter Abonnements für Amazon Redshift-Cluster-Ereignisbenachrichtigungen.

Lösung

Amazon Redshift hat ein Problem mit deinem Cluster festgestellt

Die folgenden Probleme können einen Cluster-Neustart auslösen.

Ein OOM-Fehler auf dem Führungsknoten

Eine Abfrage, die auf einem Cluster ausgeführt wird, den du auf eine neuere Version aktualisiert hast, kann zu einer OOM (Out-of-Memory)-Ausnahme führen. Setze den Patch oder den fehlgeschlagenen Patch zurück, um dieses Problem zu beheben.

Ein OOM-Fehler, der auf eine frühere Treiberversion zurückzuführen ist

Wenn du mit einer früheren Treiberversion arbeitest und der Cluster häufig neu gestartet wird, lade die neueste Java Database Connectivity (JDBC)-Treiberversion herunter. Es hat sich bewährt, die Treiberversion in der Entwicklungsumgebung zu testen, bevor du sie in der Produktion verwendest.

Abfragefehler bei der Zustandsprüfung

Amazon Redshift überwacht kontinuierlich die Verfügbarkeit seiner Komponenten. Wenn eine Zustandsprüfung fehlschlägt, leitet Amazon Redshift einen Neustart ein, um den Cluster so schnell wie möglich in einen fehlerfreien Zustand zu versetzen und Ausfallzeiten zu reduzieren.

Die meisten Fehler bei der Zustandsprüfung treten auf, wenn der Cluster offene Transaktionen mit langer Ausführungszeit hat. Wenn Amazon Redshift den Speicher bereinigt, der mit Transaktionen mit langer Ausführungszeit verknüpft ist, kann es zu einer Blockierung des Clusters kommen. Um dieses Problem zu vermeiden, empfiehlt es sich, nicht geschlossene Verbindungen und Transaktionen zu überwachen.

Führe die folgende Beispielabfrage aus, um offene Verbindungen mit langer Ausführungszeit zu überwachen:

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ühre die folgende Beispielabfrage aus, um offene Transaktionen mit langer Ausführungszeit zu überwachen:

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;

Führe dann die folgende Abfrage aus, um die offenen Transaktionen zu überprüfen:

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

Verwende den Befehl PG_TERMINATE_BACKEND, um inaktive Sitzungen zu beenden und die Verbindungen freizugeben.

Amazon Redshift hat einen fehlerhaften Knoten im Cluster 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 während des Überwachungsvorgangs nicht auf Heartbeat-Signale reagiert. Heartbeat-Signale überwachen regelmäßig die Verfügbarkeit von Rechenknoten im Amazon Redshift-Cluster.

Wenn Amazon Redshift Hardwareprobleme oder -ausfälle feststellt, werden die Knoten im nächsten Wartungsfenster automatisch ausgetauscht. Manchmal ersetzt Amazon Redshift jedoch sofort die fehlerhaften Knoten, sodass der Cluster weiterhin ordnungsgemäß funktionieren kann.

Die folgenden Probleme können dazu führen, dass Amazon Redshift Cluster-Knoten ersetzt:

  • Die EC2-Instance reagiert nicht, weil ein grundlegendes Problem mit der Hardware der Instance vorliegt oder die automatische Zustandsprüfung fehlschlägt.
  • Es gibt ein Problem mit der Festplatte, die sich auf dem Knoten befindet.
  • Ein zeitweiliger Ausfall der Netzwerkkommunikation oder ein Problem mit einem zugrunde liegenden Host kann zu einem Kommunikationsausfall zwischen den Knoten führen.
  • Bei der Entdeckung eines Knotens oder Clusters kommt es zu einem Timeout.
  • Ein überlasteter Knoten verursacht OOM-Probleme.
AWS OFFICIALAktualisiert vor 4 Monaten