¿Por qué se ha reiniciado mi clúster de Amazon Redshift fuera del periodo de mantenimiento?

5 minutos de lectura
0

Mi clúster de Amazon Redshift se ha reiniciado fuera del periodo de mantenimiento. ¿Por qué se ha reiniciado mi clúster?

Descripción corta

Un clúster de Amazon Redshift se reinicia fuera del periodo de mantenimiento por los siguientes motivos:

  • Se ha detectado un problema con su clúster de Amazon Redshift.
  • Se ha reemplazado un nodo defectuoso del clúster.

Para recibir una notificación sobre cualquier reinicio de clúster fuera del periodo de mantenimiento, cree una notificación de evento para su clúster de Amazon Redshift.

Resolución

Se ha detectado un problema con su clúster de Amazon Redshift

Estos son algunos problemas comunes que pueden provocar el reinicio de un clúster:

  • Error de falta de memoria (OOM) en el nodo principal: una consulta que se ejecuta en un clúster actualizado a una versión más reciente puede provocar una excepción de OOM que desencadene el reinicio del clúster. Para solucionar este problema, plantéese restaurar el parche o el parche con errores.
  • Error de OOM provocado por una versión anterior del controlador: si está trabajando con una versión anterior del controlador y su clúster se reinicia con frecuencia, descargue la versión más reciente del controlador de JDBC. Se recomienda probar la versión del controlador en el entorno de desarrollo antes de usarla en el de producción.
  • Error en las consultas de comprobación de estado: Amazon Redshift monitoriza constantemente la disponibilidad de sus componentes. Cuando se produce un error en una comprobación de estado, Amazon Redshift desencadena un reinicio para restablecer el buen estado del clúster lo antes posible. Al hacerlo, se reduce la cantidad de tiempo de inactividad.

Evitar errores en las consultas de comprobación de estado

Los errores de comprobación de estado más comunes se producen cuando el clúster tiene transacciones abiertas de larga duración. Cuando Amazon Redshift limpia la memoria asociada a las transacciones de larga ejecución, ese proceso puede provocar que el clúster se bloquee. Para evitar estas situaciones, se recomienda monitorizar las transacciones abiertas con las siguientes consultas.

En el caso de las conexiones abiertas durante mucho tiempo, ejecute esta consulta de ejemplo:

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;

En el caso de las transacciones abiertas durante mucho tiempo, ejecute esta consulta de ejemplo:

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;

Una vez que disponga de esta información, podrá revisar las transacciones que siguen abiertas mediante la ejecución de la siguiente consulta:

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

Para terminar las sesiones inactivas y liberar las conexiones, utilice el comando PG_TERMINATE_BACKEND.

Se ha reemplazado un nodo defectuoso en el clúster de Amazon Redshift

Cada nodo de Amazon Redshift se ejecuta en una instancia independiente de Amazon Elastic Compute Cloud (Amazon EC2). Un error en un nodo corresponde a una instancia que no responde a ninguna señal de latido enviada durante el proceso de monitorización. Las señales de latido monitorizan periódicamente la disponibilidad de los nodos de computación en su clúster de Amazon Redshift.

Estas comprobaciones de estado automatizadas intentan recuperar el clúster de Amazon Redshift cuando se detecta un problema. Cuando Amazon Redshift detecta algún problema o error de hardware, los nodos se reemplazan automáticamente en el siguiente periodo de mantenimiento. Tenga en cuenta que, en algunos casos, los nodos defectuosos se deben reemplazar inmediatamente para garantizar que el clúster funcione correctamente.

Estas son algunas de las causas comunes de errores en los nodos de un clúster:

  • Error en la instancia de EC2: cuando se descubre que el hardware subyacente de una instancia de EC2 es defectuoso, el nodo defectuoso se reemplaza para restaurar el rendimiento del clúster. EC2 etiqueta el hardware subyacente como defectuoso si no hay respuesta o si no supera alguna comprobación de estado automatizada.
  • Reemplazo de un nodo porque una unidad de disco del nodo es defectuosa: cuando se detecta un problema con el disco en un nodo, Amazon Redshift reemplaza el disco o reinicia el nodo. Si el clúster de Amazon Redshift no se recupera, el nodo se reemplaza o se programa su reemplazo.
  • Error de comunicación entre nodos: si hay un error de comunicación entre los nodos, un nodo en particular no recibirá los mensajes de control en el momento especificado. Los errores de comunicación entre nodos se deben a un problema de conexión de red intermitente o a un problema con el host subyacente.
  • Tiempo de espera de detección: si no se puede acceder a un nodo o clúster dentro del tiempo especificado, se activa un reemplazo automático del nodo.
  • Excepción de falta de memoria (OOM): una carga excesiva en un nodo concreto puede provocar problemas de OOM y desencadenar el reemplazo del nodo.

Creación de notificaciones de eventos de Amazon Redshift

Para identificar la causa del reinicio del clúster, cree una notificación de evento de Amazon Redshift para suscribirse a cualquier reinicio de clúster. También recibirá notificaciones de eventos cuando se configure el origen.


Información relacionada

Categorías y mensajes de eventos de Amazon Redshift

Administración de notificaciones de eventos mediante la consola de Amazon Redshift

Administración de notificaciones de eventos mediante la API y la CLI de Amazon Redshift

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año