MSSQLSERVER_19419
Aplica-se a: SQL Server
Detalhes
Atributo | Valor |
---|---|
Nome do produto | SQL Server |
ID do evento | 19419 |
Origem do Evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbólico | HADR_AG_LEASE_EXPIRED_WAITING_FOR_RENEW |
Texto da mensagem | O Cluster de Failover do Windows Server não recebeu um sinal de evento de processo do grupo de disponibilidade de hospedagem do SQL Server '%.*ls' dentro do período de tempo limite de concessão. |
Explicação
O erro 19419 é gerado no log de erros do SQL Server quando o trabalho de concessão no lado do SQL Server não foi agendado a tempo de processar o sinal de evento do cluster. Especificamente, o SQL Server chama WaitForMultipleObjects() aguardando que o evento de tempo limite de concessão seja definido em um estado sinalizado. Se a função retornar WAIT_OBJECT_0, o que indica êxito, mas a essa altura a concessão tiver expirado, o erro 19419 será gerado.
Uma concessão é um mecanismo de comunicação baseado em tempo que ocorre entre o SQL Server e o processo WSFC (Cluster de Failover do Windows Server), especificamente o processo RHS.EXE. Os dois processos se comunicam periodicamente para garantir que o outro processo esteja sendo executado e respondendo. Essa comunicação ocorre usando objetos de Evento do Windows e garante que um failover do recurso do AG não ocorra sem o conhecimento do WSFC. Se um dos processos não responder à comunicação de concessão com base em um período de locação predefinido, ocorrerá um tempo limite de locação. Para obter informações detalhadas, consulte Mecanismo de concessão. Consulte também Como funciona: Tempo limite de concessão AlwaysOn do SQL Server
Esse erro está relacionado a outros erros de tempo limite de concessão e fornece detalhes mais específicos para o erro MSSQLSERVER_19407
Causas
Como os Eventos do Windows são objetos de sincronização leves, há um número relativamente pequeno de fatores externos que os afetam negativamente. Problemas típicos que podem levar ao tempo limite de concessão envolvem problemas em todo o sistema. Aqui está uma lista de possibilidades que podem causar a expiração da concessão e causar uma reinicialização ou failover:
- Alto uso da CPU no sistema (perto de 100%)
- Condições de falta de memória - pouca memória virtual e/ou um dos processos está sendo paginado
- O processo do SQL Server não está respondendo ao gerar um grande despejo de memória
- WSFC ficando offline (por exemplo, devido à perda de quorum)
O motivo mais comum para o erro 19419 é a alta CPU, que causa um atraso no agendamento do thread do trabalho de concessão.
Ação do usuário
Verifique a utilização da CPU no servidor, pois o trabalho de concessão do SQL Server parece estar faminto por recursos de CPU. O script do PowerShell a seguir permitirá que você diagnostique rapidamente o uso da CPU no sistema.
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 5 -MaxSamples 30 |
Select-Object -ExpandProperty CounterSamples | Select-Object TimeStamp, Path, CookedValue
Para obter uma solução de problemas detalhada, consulte Ação do usuário no MSSQLSERVER_19407
- Solucionar problemas de alta CPU
- Solucionar problemas de pouca memória
- Reduzir ou evitar grandes despejos de memória do SQL Server ou do processo de cluster
- Verificar a configuração da VM (máquina virtual) para superprovisionamento
- Verifique se há migração ou backup de máquina virtual (VM) causando problemas