Por que meu cluster do Amazon Redshift foi reinicializado fora da janela de manutenção?

5 minuto de leitura
0

Meu cluster do Amazon Redshift foi reiniciado fora da janela de manutenção. Por que meu cluster foi reinicializado?

Descrição resumida

Um cluster do Amazon Redshift é reiniciado fora da janela de manutenção pelos seguintes motivos:

  • Foi detectado um problema com seu cluster do Amazon Redshift.
  • Um nó com falha no cluster foi substituído.

Para ser notificado sobre qualquer reinicialização de cluster fora da sua janela de manutenção, crie uma notificação de evento para seu cluster do Amazon Redshift.

Resolução

Foi detectado um problema com seu cluster do Amazon Redshift

Conheça alguns problemas comuns que podem acionar a reinicialização do cluster:

  • Um erro de memória insuficiente (OOM) no nó líder: uma consulta executada em um cluster atualizado para uma versão mais recente pode causar uma exceção de OOM, iniciando uma reinicialização do cluster. Para resolver isso, considere reverter seu patch ou o patch que falhou.
  • Um erro de OOM resultante de uma versão mais antiga do driver: se você estiver trabalhando em uma versão mais antiga do driver e seu cluster estiver passando por reinicializações frequentes, baixe a versão mais recente do driver JDBC. É uma prática recomendada testar a versão do driver em seu ambiente de desenvolvimento antes de usá-la na produção.
  • Falha nas consultas de verificação de integridade: o Amazon Redshift monitora constantemente a disponibilidade dos seus componentes. Quando uma verificação de integridade falha, o Amazon Redshift inicia uma reinicialização para colocar o cluster em um estado íntegro o mais rápido possível. Isso reduz a quantidade de tempo de inatividade.

Evitar falhas na consulta de verificação de integridade

As falhas mais comuns na verificação de integridade ocorrem quando o cluster tem transações abertas de longa duração. Quando o Amazon Redshift limpa a memória associada a transações de longa duração, esse processo pode causar o bloqueio do cluster. Para evitar essas situações, é uma prática recomendada monitorar transações abertas usando as consultas a seguir.

Para conexões abertas por muito tempo, execute o seguinte exemplo de consulta:

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;

Para transações abertas por muito tempo, execute o seguinte exemplo de consulta:

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;

Depois de ter essas informações, você pode revisar as transações que ainda estão abertas executando a seguinte consulta:

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

Para encerrar sessões ociosas e liberar as conexões, use o comando PG_TERMINATE_BACKEND.

Um nó com falha no cluster do Amazon Redshift foi substituído

Cada nó do Amazon Redshift é executado em uma instância separada do Amazon Elastic Compute Cloud (Amazon EC2). Um nó com falha é uma instância que não responde a nenhum sinal de pulsação enviado durante o processo de monitoramento. Os sinais de pulsação monitoram periodicamente a disponibilidade dos nós de computação no seu cluster do Amazon Redshift.

Essas verificações de integridade automatizadas tentam recuperar o cluster do Amazon Redshift quando um problema é detectado. Quando o Amazon Redshift detecta qualquer problema ou falha de hardware, os nós são automaticamente substituídos na janela de manutenção a seguir. Observe que, em alguns casos, os nós com falhas devem ser substituídos imediatamente para garantir que o cluster esteja funcionando corretamente.

Conheça algumas das causas comuns de falha nos nós de cluster:

  • Falha na instância do EC2: quando se descobre que o hardware subjacente de uma instância do EC2 apresenta falhas, o nó com falha é substituído para restaurar a performance do cluster. O EC2 marcará o hardware subjacente como defeituoso se houver falta de resposta ou falha na aprovação em qualquer verificação de integridade automatizada.
  • Substituição de nós devido a uma unidade de disco com falha de um nó: quando um problema é detectado com o disco em um nó, o Amazon Redshift substitui o disco ou reinicia o nó. Se o cluster do Amazon Redshift falhar na recuperação, o nó será substituído ou programado para ser substituído.
  • Falha na comunicação entre nós: se houver uma falha na comunicação entre os nós, as mensagens de controle não serão recebidas por um determinado nó no horário especificado. As falhas na comunicação entre nós são causadas por um problema intermitente de conexão de rede ou um problema com o host subjacente.
  • Tempo limite de descoberta: uma substituição automática de nó será acionada se um nó ou cluster não puder ser acessado dentro do tempo especificado.
  • Exceção de memória insuficiente (OOM): cargas pesadas em um nó particulado podem causar problemas de OOM, desencadeando a substituição de nós.

Criar notificações de eventos do Amazon Redshift

Para identificar a causa da reinicialização do seu cluster, crie uma notificação de evento do Amazon Redshift, assinando qualquer reinicialização do cluster. As notificações de eventos também informam se a origem foi configurada.


Informações relacionadas

Categorias de eventos e mensagens de eventos do Amazon Redshift

Gerenciar notificações de evento usando o console do Amazon Redshift

Gerenciar notificações de eventos usando a CLI e a API do Amazon Redshift

AWS OFICIAL
AWS OFICIALAtualizada há um ano