Por que a minha instância de banco de dados do Amazon RDS reiniciou, foi recuperada ou fez failover?
Quero saber a causa-raiz da reinicialização, recuperação ou failover da minha instância do bando de dados do Amazon Relational Database Service (Amazon RDS).
Breve descrição
A instância de banco de dados do Amazon RDS executa automaticamente uma reinicialização nas seguintes condições:
- Há perda de disponibilidade na zona de disponibilidade primária ou workload excessivo devido ao gargalo de desempenho e à contenção de recursos.
- Há um problema subjacente de infraestrutura com a instância primária, como perda de conectividade de rede com a instância primária, problema de unidade de computação na instância primária ou problema de armazenamento na instância primária.
- O tipo de classe da instância de banco de dados é alterado como parte da atividade de escalabilidade vertical da instância de banco de dados.
- O host subjacente da instância de banco de dados do RDS está recebendo patches de software durante uma janela de manutenção específica. Para obter mais informações, consulte Manter uma instância de banco de dados e Atualizar uma versão do mecanismo de instância de banco de dados.
- Uma reinicialização da instância de banco de dados foi iniciada manualmente usando as opções Reinicialização ou Reinicialização com failover.
Quando a instância de banco de dados apresenta possíveis problemas e não responde às verificações de integridade do RDS, o RDS inicia automaticamente uma recuperação mono-AZ para a implantação mono-AZ e um failover multi-AZ para a implantação multi-AZ. Em seguida, a instância de banco de dados é reiniciada para que seja possível retomar as operações do banco de dados o mais rápido possível sem intervenção administrativa.
Resolução
Para identificar a causa da interrupção, verifique os seguintes logs e métricas para a instância de banco de dados do RDS.
Eventos do Amazon RDS
Para identificar a causa-raiz de uma interrupção não planejada na instância, visualize todos os eventos do Amazon RDS nas últimas 24 horas. Todos os eventos são registrados no horário UTC/GMT por padrão. Para armazenar eventos por mais tempo, envie os eventos do Amazon RDS para o Amazon CloudWatch Events. Para obter mais informações, consulte Criar uma regra que aciona um evento do Amazon RDS. Quando a instância for reiniciada, uma das seguintes mensagens nas notificações de eventos do RDS é exibida:
-
A instância do RDS foi modificada pelo cliente: essa mensagem de evento do RDS indica que o failover foi iniciado por uma modificação da instância do RDS.
-
Aplicação de modificação à classe da instância do banco de dados: essa mensagem de evento do RDS indica que o tipo de classe da instância de banco de dados foi alterado.
- As implantações mono-AZ ficam indisponíveis por alguns minutos durante essa operação de escalabilidade.
- As implantações multi-AZ não estão disponíveis durante o tempo necessário para a instância fazer failover. A duração geralmente é cerca de 60 segundos. Isso ocorre porque o banco de dados em espera é atualizado antes que o banco de dados recém-dimensionado passe por um failover. Em seguida, o banco de dados é reiniciado e o mecanismo executa a recuperação para garantir que o banco de dados permaneça em um estado consistente.
-
O usuário solicitou um failover da instância de banco de dados: essa mensagem indica que uma reinicialização da instância de banco de dados foi iniciada manualmente usando a opção Reinicialização ou Reinicialização com failover.
-
O host primário da instância multi-AZ do RDS não está íntegro: isso indica um problema transitório de hardware subjacente que levou à perda de comunicação com a instância primária. Esse problema pode ter deixado a instância não íntegra, porque o sistema de monitoramento do RDS não pôde se comunicar com a instância do RDS para realizar as verificações de integridade.
-
O host primário da instância multi-AZ do RDS está inacessível devido à perda de conectividade de rede: isso indica que o failover multi-AZ e a reinicialização da instância do banco de dados foram causados por um problema de rede transitório que afetou o host primário da implantação multi-AZ. O sistema de monitoramento interno detectou esse problema e iniciou um failover.
-
A instância primária multi-AZ do RDS está ocupada e não responde, a ativação da instância multi-AZ foi iniciada ou a ativação da instância multi-AZ foi concluída: o log de eventos mostra essas mensagens nas seguintes situações:
- A instância de banco de dados primária não responde.
- Uma crise de memória depois de um consumo excessivo de memória no banco de dados impediu que o sistema de monitoramento do RDS entrasse em contato com o host subjacente. Portanto, o banco de dados é reiniciado pelo sistema de monitoramento como uma medida proativa.
- A instância de banco de dados teve problemas de rede intermitentes com o host subjacente.
- A instância sofreu uma carga de banco de dados. Nesse caso, é possível notar picos nas métricas CPUUtilization, DatabaseConnections, métricas de IOPS e detalhes de throughput do CloudWatch. Também é possível notar o esgotamento da Freeablememory.
-
Instância de banco de dados corrigida: essa mensagem indica que a instância de banco de dados passou por uma atualização de versão secundária durante uma janela de manutenção porque a configuração Atualização de versão secundária está ativada na instância.
Métricas do CloudWatch
Visualize as métricas do CloudWatch para sua instância do Amazon RDS para verificar se o problema de carga do banco de dados causou a interrupção. Para obter mais informações, consulte Monitoramento de métricas do Amazon RDS com o Amazon CloudWatch. Verifique se há picos nas seguintes métricas principais que indicam a disponibilidade e o status de integridade da sua instância do RDS:
- DatabaseConnections
- CPUUtilization
- FreeableMemory
- WriteIOPS
- ReadIOPS
- ReadThroughput
- WriteThroughput
- DiskQueueDepth
Enhanced Monitoring
O Amazon RDS entrega as métricas do Enhanced Monitoring em sua conta do Amazon CloudWatch Logs. Isso fornece métricas em tempo real para o sistema operacional no qual sua instância de banco de dados é executada. Você pode visualizar todas as métricas do sistema e informações de processos das suas instâncias de banco de dados no console.
Você pode definir a granularidade do recurso Enhanced Monitoring como 1, 5, 10, 15, 30 ou 60.
Para ativar o Enhanced Monitoring para sua instância do Amazon RDS, consulte Configuração e ativação do Enhanced Monitoring.
Performance Insights
O painel do Performance Insights contém informações relacionadas à performance do banco de dados que podem ajudá-lo a analisar e solucionar problemas de performance. Também é possível identificar as consultas e eventos de espera que consomem recursos excessivos na instância de banco de dados. O Performance Insights coleta dados no nível do banco de dados e exibe os dados no painel do Performance Insights. Para obter mais informações, consulte Monitoramento da carga do banco de dados com o Performance Insights no Amazon RDS. Quando um aumento no consumo de recursos é gerado do lado do aplicativo, use a ID SQL de suporte do painel do Performance Insights e corresponda-o com a respectiva consulta. É uma melhor prática usar essas informações para ajustar o desempenho da consulta e otimizar seu workload usando a orientação do seu DBA:
- Abra o console do Amazon RDS.
- No painel de navegação, escolha Performance Insights.
- Na página Performance Insights, selecione a instância de banco de dados. Você pode visualizar o painel do Performance Insights para essa instância de banco de dados.
- Selecione o período de tempo em que o problema ocorreu.
- Escolha a guia SQL superior.
- Escolha o ícone de configurações e ative o ID de suporte.
- Escolha Salvar.
Logs do banco de dados do RDS
Para solucionar a causa da interrupção da instância de banco de dados do Amazon RDS, é possível visualizar, baixar ou assistir arquivos de log do banco de dados usando o console do Amazon RDS ou as operações de API do Amazon RDS. Também é possível consultar os arquivos de log do banco de dados que estão carregados nas tabelas do banco de dados. Para obter mais informações, consulte Monitoramento de arquivos de log do Amazon RDS.
Tenha em mente as seguintes melhores práticas ao lidar com interrupções de instâncias do RDS:
- Ative a implantação multi-AZ em sua instância para reduzir o tempo de inatividade durante uma interrupção. Com a implantação multi-AZ, o RDS provisiona e mantém automaticamente uma réplica em espera síncrona em outra zona de disponibilidade ou duas instâncias de espera legíveis. Para obter mais informações, consulte Multi-AZ do Amazon RDS.
- Ajuste a janela de manutenção da instância de banco de dados de acordo com sua preferência. A instância de banco de dados fica indisponível durante esse período somente se as alterações do sistema, como uma alteração na classe da instância de banco de dados, estiverem sendo aplicadas e exigirem uma interrupção, e apenas pelo tempo mínimo necessário para fazer as alterações necessárias. Para obter mais informações, consulte Manutenção de uma instância de banco de dados. Se não quiser que as instâncias passem por atualizações automáticas de versões secundárias, é possível desativar essa opção. Para obter mais informações, consulte Atualização automática da versão secundária do mecanismo.
- Verifique se tem recursos suficientes alocados ao banco de dados para executar consultas. Com o Amazon RDS, a quantidade de recursos alocados depende do tipo de instância. Além disso, certas consultas, como procedimentos armazenados, podem ocupar uma quantidade ilimitada de memória. Portanto, se a instância for reiniciada com frequência devido à falta de recursos, considere aumentar a escala verticalmente da classe de instância de banco de dados para acompanhar as demandas crescentes de seus aplicativos.
- Para evitar o controle de utilização de instâncias, configure os alarmes do Amazon CloudWatch nas métricas principais do RDS que indicam a disponibilidade e o status de integridade das instâncias do RDS. Por exemplo, é possível definir um alarme do CloudWatch na métrica FreeableMemory para receber uma notificação quando a memória disponível atingir 95%. É uma melhor prática manter pelo menos 5% da memória da instância livre. Para obter mais informações, consulte Como posso filtrar os logs do Enhanced Monitoring do CloudWatch Logs para gerar métricas personalizadas e automatizadas para o Amazon RDS?
- Para ser notificado sempre que houver um failover em sua instância do RDS, assine as notificações de eventos do Amazon RDS. Para obter mais informações, consulte Como faço para criar uma assinatura de evento do Amazon RDS?
- Para otimizar a performance do banco de dados, verifique e confirme se suas consultas estão ajustadas corretamente. Caso contrário, o usuário poderá enfrentar problemas de performance e tempos de espera prolongados.
- Para solucionar qualquer tipo de carga em termos de CPU, memória ou qualquer outra crise de recursos. consulte Como posso solucionar problemas de alta utilização da CPU para o Amazon RDS ou o Amazon Aurora PostgreSQL?
Informações relacionadas
Melhores práticas do Amazon RDS
Por que ocorreu failover da minha instância de banco de dados do Amazon RDS?
Como minimizo o tempo de inatividade durante a manutenção obrigatória do Amazon RDS?
Conteúdo relevante
- feita há 12 diaslg...
- Resposta aceitafeita há 9 diaslg...
- feita há 12 diaslg...
- feita há 25 diaslg...
- AWS OFICIALAtualizada há um mês
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 2 anos