KB4022935 - CORREÇÃO: Não é possível retomar um banco de dados de disponibilidade suspenso após um erro de gravação no SQL Server 2014 ou 2016

Aplica-se a
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use)

Sintomas

Suponha que você use um AG (Grupo de Disponibilidade) Always On do Microsoft SQL Server 2014 ou 2016. Se um erro de gravação semelhante ao seguinte ocorrer em um banco de dados secundário, o banco de dados poderá ficar suspenso.

Observação

Erro: 17053, Gravidade: 16, Estado: 1.
SQLServerLogMgr::LogWriter: Erro 6 do sistema operacional (o identificador é inválido.) encontrado.
Erro de gravação durante a liberação do log.

Nessa situação, se você retomar a movimentação de dados, o banco de dados não será retomado e ele permanecerá no estado suspenso.

Solução alternativa

Para contornar esse problema, você pode reiniciar a instância do SQL Server ou remover o banco de dados secundário do grupo de disponibilidade e adicioná-lo novamente.

Resolução

Esse problema é corrigido na seguinte atualização cumulativa para o SQL Server:

Atualização cumulativa 8 para o SQL Server 2016 RTM

Atualização cumulativa 5 para SQL Server 2016 CU5

Atualização cumulativa 38 para o SQL Server 2014 SP2 (Build 50785)

Sobre atualizações cumulativas para o SQL Server:

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para o SQL Server:

Atualização cumulativa mais recente do SQL Server 2016

Atualização cumulativa mais recente do SQL Server 2014

Observação

Depois de instalar esta atualização, se esse problema ocorrer novamente, você poderá executar o seguinte comando Transact-SQL para reiniciar o banco de dados e, em seguida, retomar a movimentação de dados para o banco de dados.

ALTERAR BANCO DE DADOS <database_name> DEFINIR RESUMO HADR

Isso não é automatizado. Portanto, você deve emitir manualmente a operação de retomada. Porque a maioria dos tipos de erros que resultam na suspensão de movimentos de dados na réplica secundária requer intervenção manual.

Por exemplo, se o arquivo de log estiver localizado em uma pasta compartilhada ou armazenado no Blob do Microsoft Azure e a conexão for perdida, ocorrerá o Erro 17053. A intervenção manual garantirá que a conexão com a pasta compartilhada ou o blob do Azure seja restaurada antes de você emitir o comando HADR retomar.

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Referências

Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.