Sintomas
Suponha que você use o Microsoft SQL Server 2016 ou 2017 Always On Grupos de Disponibilidade. Quando você retoma um banco de dados de disponibilidade suspenso, pode ocorrer um erro de declaração no réplica secundário. Além disso, as mensagens de erro que se assemelham ao seguinte são registradas no log de erros SQL Server no réplica secundário.
Data/Hora Erro: 17066, Gravidade: 16, Estado: 1.
Data/Hora Declaração SQL Server: Arquivo: <recovery.cpp>, line=LineNumber Failed Assertion = 'recXdes->IsLockReleased () && recXdes->GetOutstandingCount () == 0'. Esse erro pode estar relacionado ao tempo. Se o erro persistir depois de executar novamente a instrução, use o DBCC CHECKDB para marcar banco de dados para integridade estrutural ou reinicie o servidor para garantir que as estruturas de dados na memória não estejam corrompidas.
Data/HoraErro: 3624, Gravidade: 20, Estado: 1.
Data/HoraUma marcar de declaração do sistema falhou. Verifique o log de erros SQL Server para obter detalhes. Normalmente, uma falha de declaração é causada por um bug de software ou corrupção de dados. Para marcar para corrupção de banco de dados, considere executar o DBCC CHECKDB. Se você concordou em enviar despejos para a Microsoft durante a instalação, um mini despejo será enviado para a Microsoft. Uma atualização pode estar disponível da Microsoft no Service Pack mais recente ou em um Hotfix do Suporte Técnico.
Data/HoraErro: 3624, Gravidade: 20, Estado: 2.
Data/HoraUma marcar de declaração do sistema falhou. Verifique o log de erros SQL Server para obter detalhes. Normalmente, uma falha de declaração é causada por um bug de software ou corrupção de dados. Para marcar para corrupção de banco de dados, considere executar o DBCC CHECKDB. Se você concordou em enviar despejos para a Microsoft durante a instalação, um mini despejo será enviado para a Microsoft. Uma atualização pode estar disponível da Microsoft no Service Pack mais recente ou em um Hotfix do Suporte Técnico.
Data/HoraErro: 3313, Gravidade: 21, Estado: 2.
Data/HoraDurante a reformulação de uma operação registrada no DatabaseName do banco de dados, ocorreu um erro na ID do registro de log (RecordID). Normalmente, a falha específica é registrada anteriormente como um erro no serviço log de eventos do Windows. Restaure o banco de dados de um backup completo ou conserto o banco de dados.
Data/HoraAlways On a movimentação de dados dos Grupos de Disponibilidade para DatabaseName de banco de dados foi suspensa pelo seguinte motivo: "system" (ID de origem 2; Cadeia de caracteres de origem: 'SUSPEND_FROM_REDO'). Para retomar a movimentação de dados no banco de dados, você precisará retomar o banco de dados manualmente. Para obter informações sobre como retomar um banco de dados de disponibilidade, consulte SQL Server Livros Online.
Data/HoraOpção alter DB param: RESUME
Data/HoraAlways On A movimentação de dados dos Grupos de Disponibilidade para DatabaseName de banco de dados foi retomada. Essa é apenas uma mensagem informativa. Nenhuma ação do usuário é necessária.
Data/HoraAlways On conexão dos Grupos de Disponibilidade com o banco de dados primário estabelecido para DatabaseName de banco de dados secundário na disponibilidade réplica ReplicaName com a ID da Réplica: ReplicaID. Essa é apenas uma mensagem informativa. Nenhuma ação do usuário é necessária.
Data/HoraO LSN de recuperação (LsnNumber) foi identificado para o banco de dados com ID DatabaseID. Essa é apenas uma mensagem informativa. Nenhuma ação do usuário é necessária.
Resolução
Esse problema é corrigido nas seguintes atualizações cumulativas para SQL Server:
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as últimas atualizações cumulativas para SQL Server:
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologiaque a Microsoft usa para descrever atualizações de software.