Sintomas
Esta atualização inclui as seguintes melhorias para a capacidade de suporte do Microsoft SQL Server AlwaysOn Lease Timeout:
-
A mensagem Tempo de Arrendamento agora mostra e regista a hora atual e o tempo de renovação esperado.
-
Uma nova mensagem de erro foi adicionada aos trabalhadores do arrendamento que indica claramente o motivo do Tempo de Arrendamento.
-
Foi adicionado um novo evento alargado e um novo tampão para os trabalhadores do arrendamento. Estes indicam claramente as fases de arrendamento.
Resolução
O problema foi corrigido pela primeira vez nos seguintes Pacotes de Serviço para O SERVIDOR SQL.
Para obter mais informações sobre o SQL Server 2012 Service Pack 3 (SP3), consulte os bugs que são corrigidos no SQL Server 2012 Service Pack 3.
Pacote de serviço 2 para SQL Server para SQL Server 2014Sobre pacotes de serviços para SQL ServerOs pacotes de serviço são cumulativos. Cada novo pacote de serviços contém todas as correções que se encontram em pacotes de serviços anteriores, juntamente com quaisquer novas correções. A nossa recomendação é aplicar o mais recente pacote de serviços e a mais recente atualização cumulativa para esse pacote de serviços. Não tem de instalar um pacote de serviços anterior antes de instalar o mais recente pacote de serviços. Utilize o Quadro 1 no seguinte artigo para encontrar mais informações sobre o mais recente pacote de serviços e a mais recente atualização cumulativa.Como determinar o nível de versão, edição e atualização do SQL Server e dos seus componentes
Mais Informações
Para fornecer informações adicionais, novas mensagens de erro foram adicionadas ao SQL Server. As seguintes listas de tabelas e explica cada uma delas.
Erro |
Mensagem de erro |
Causa |
Ação corretiva |
---|---|---|---|
19419 |
A renovação do contrato de arrendamento entre o grupo de disponibilidade '%.*ls' e o Windows Server Failover Cluster falhou porque o arrendamento existente já não é válido. |
O trabalhador do arrendamento do lado do SQL Server não foi programado a tempo para processar o sinal do evento a partir do cluster. |
Verifique a utilização do CPU no servidor, uma vez que o trabalhador de locação do SQL Server parece estar esfomeado. |
19420 |
O grupo de disponibilidade '%.*ls' é explicitamente solicitado para parar a renovação do contrato de arrendamento. |
A renovação do arrendamento está a parar como parte de offline o grupo de disponibilidade. Isto é apenas informativo. |
|
19421 |
A renovação do contrato de arrendamento entre o grupo de disponibilidade '%.*ls' e o Windows Server Failover Cluster falhou porque a renovação não aconteceu dentro do intervalo de locação. |
O ajudante de arrendamento do lado do cluster não sinalizou o trabalhador de locação do SQL Server a tempo. |
Verifique o recurso de grupo de disponibilidade correspondente no cluster WSFC para ver se reportou algum erro. |
19422 |
A renovação do contrato de arrendamento entre o grupo de disponibilidade '%.*ls' e o Windows Server Failover Cluster falhou devido a um erro do Windows com código Error ('%d'). |
O trabalhador do arrendamento do lado do SQL Server não renovou o contrato de arrendamento devido a um erro do Windows. |
Verifique o código de erro do Windows e tome a ação corretiva. |
19423 |
O arrendamento do grupo de disponibilidade '%.*ls' de arrendamento já não é válido para iniciar o processo de renovação do arrendamento. |
Quando o trabalhador do arrendamento começou a processar o tempo de arrendamento excedentário fornecido por chamada online, o contrato de arrendamento já estava caducado. Isto pode acontecer devido a problemas de agendamento. |
Verifique a utilização do CPU no servidor, uma vez que o trabalhador de locação do SQL Server parece estar esfomeado. |
19424 |
O trabalhador do arrendamento do grupo de disponibilidade '%.*ls' está agora a dormir o tempo de arrendamento excedentário (%u ms) fornecido durante a internet. Esta é apenas uma mensagem informativa. Não é necessária qualquer ação do utilizador. |
Informativo. Tempo on-line extra atribuído para iniciar o fio de renovação do arrendamento e como parte da rotina online do grupo de disponibilidade. |
Exemplo de erro 19419: Se utilizar um depurante para se ligar ao SQL Server, interrompe qualquer manutenção de fios no processo SQL Server até retomar o processo SQL Server. Quando retoma o SQL Server, o seguinte é relatado no registo de erro do SQL Server:
>hora da data< Erro do servidor: 19419, Severidade: 16, Estado: 1. > de data de<O Cluster failover do servidor do Servidor do Servidor do Servidor do Servidor do Servidor do Servidor do Servidor do Servidor do Servidor não recebeu um sinal de evento de processo do grupo de anfitriões 'ag' do sql Server dentro do período de tempo de locação. > de data de<Erro do servidor: 19407, Severidade: 16, Estado: 1. > de data de<Servidor O arrendamento entre o grupo de disponibilidade 'ag' e o Windows Server Failover Cluster expirou. Ocorreu um problema de conectividade entre a instância do SQL Server e o Windows Server Failover Cluster. Para determinar se o grupo de disponibilidade está a falhar corretamente, verifique o recurso de grupo de disponibilidade correspondente no Cluster de Falha do Servidor do Windows. > de data de<Servidor AlwaysOn: A réplica local do grupo de disponibilidade 'ag' está offline porque quer o contrato de arrendamento expirou ou a renovação do contrato falhou. Esta é apenas uma mensagem informativa. Não é necessária qualquer ação do utilizador. > de data de<Servidor O estado da réplica de disponibilidade local no grupo de disponibilidade 'ag' passou de 'PRIMARY_NORMAL' para 'RESOLVING_NORMAL'. O estado de réplica mudou por causa de uma startup, um fracasso, um problema de comunicação ou um erro de cluster. Para obter mais informações, consulte o dashboard do grupo de disponibilidade, o registo de erros do SQL Server, a consola de gestão do Cluster failover do Windows Server ou o registo do Cluster Failover do Servidor do Windows Server.
O erro de 19419 é devolvido porque o SQL Server não respondeu ao serviço de cluster. Também pode receber uma mensagem de erro de tempo de locação (19407) juntamente com o erro de 19419.Exemplo de erro de 19424: O seguinte é a mensagem de tempo de arrendamento em excesso que é reportada pouco antes das transições do grupo de disponibilidade para o papel PRIMARY:
> de data de<Servidor O trabalhador de locação do grupo de disponibilidade 'ag' está agora a dormir o tempo de arrendamento em excesso (164766 ms) fornecido durante a internet. Esta é apenas uma mensagem informativa. Não é necessária qualquer ação do utilizador. > de data de<Servidor O estado da réplica de disponibilidade local no grupo de disponibilidade 'ag' passou de 'PRIMARY_PENDING' para 'PRIMARY_NORMAL'. O estado de réplica mudou por causa de uma startup, um fracasso, um problema de comunicação ou um erro de cluster. Para obter mais informações, consulte o dashboard do grupo de disponibilidade, o registo de erros do SQL Server, a consola de gestão do Cluster failover do Windows Server ou o registo do Cluster Failover do Servidor do Windows Server.
O availability_group_lease_expired e hadr_ag_lease_renewal XEvents foram melhorados, com a adição de pontos de dados que fornecem mais informações sobre o estado do arrendamento. O quadro seguinte descreve as melhorias nestes XEvents:
XEvent |
Nova coluna |
Descrição |
---|---|---|
availability_group_lease_expired |
current_time |
Hora em que o contrato de arrendamento expirou |
availability_group_lease_expired |
new_timeout |
O tempo de tempo, quando availability_group_lease_expired é aumentado, current_time é maior do que new_timeout |
availability_group_lease_expired |
estado |
Estágios de arrendamento: ver tabela De Estágios de Arrendamento abaixo |
hadr_ag_lease_renewal |
estado |
hadr_ag_lease_renewal |
hadr_ag_lease_renewal |
error_code |
Se o estado for HadrLeaseRenewal_FailedWithWindowsError então error_code é o código de erro do Windows associado à falha |
Estágios e definições de arrendamentoA tabela a seguir enumera as fases de arrendamento possíveis e explica as suas funções:
Nome do palco |
Descrição |
---|---|
HadrLeaseRenewal_LeaseWorkerStarted |
O fio do trabalhador do arrendamento começou. |
HadrLeaseRenewal_StartedExcessLeaseSleep |
Começando o excesso de arrendamento. As fases de arrendamento em excesso documentam o início da linha de arrendamento durante a fase online do grupo de disponibilidade. |
HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease |
Falhamos no contrato de arrendamento em excesso se o contrato de arrendamento já tiver expirado. |
HadrLeaseRenewal_SkipExcessSleep |
Ignoramos o excesso de arrendamento se a duração disponível para dormir for inferior ao intervalo de arrendamento. Não há necessidade de passar pelo excesso de arrendamento basta iniciar o processo de aperto de mão. |
HadrLeaseRenewal_ExcessSleepSucceeded |
O excesso de arrendamento foi bem sucedido. |
HadrLeaseRenewal_RenewSucceeded |
Devíamos ver isto com todas as renovações. |
HadrLeaseRenewal_LeaseNotValid |
Equivalente a erro: 19419 O Cluster de Failover do Servidor de 19419 não recebeu um sinal de evento de processo do grupo de hospedagem do SQL Server '%.*ls' dentro do período de tempo de locação. |
HadrLeaseRenewal_StopLeaseRenewal |
Devias ver isto durante um evento de fracasso. |
HadrLeaseRenewal_LeaseExpired |
Equivalente a erro: 19421 O grupo de disponibilidade do servidor '%.*ls' do servidor de 19421 não recebeu um sinal de evento de processo do Cluster de Falha do Servidor do Windows no período de tempo de locação. |
HadrLeaseRenewal_FailedWithWindowsError |
A renovação do arrendamento falhou devido a um erro no windows. |
Para obter mais informações, consulte diagnósticos de tempo de locação do grupo de arrendamento de sempre 10 000 horas. Para obter mais informações sobre o Tempo de Locação, consulte Como Funciona: SQL Server AlwaysOn Lease Timeout.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".