Sintomas
Suponha que você use um grupo de alta disponibilidade (AG) Always On como uma réplica secundária. Quando tenta atualizar o Microsoft SQL Server 2016 para o Service Pack 2 (SP2) Atualização Cumulativa 11 (CU11) ou versões posteriores, o script de atualização falha e poderá receber as seguintes mensagens de erro:
DateTime spidSpidId Atualizando configurações de assinatura e objetos do sistema no banco de dados [DatabaseName].
DateTime spidSpidId Falha ao atualizar o banco de dados "DatabaseName" porque o banco de dados é somente leitura.
DateTime spidSpidId Erro ao executar sp_vupgrade_replication.
Causa
Quando uma atualização é executada na réplica secundária de uma SQL AG, há uma corrida entre a recuperação do banco de dados e a execução do script de atualização. Por conseguinte, o cursor que utiliza no sp_vupgrade_replication não consegue filtrar corretamente as bases de dados só de leitura. Por um curto período de tempo, os bancos de dados secundários em fase de recuperação são incluídos na lista de banco de dados editável. Consequentemente, quando tenta atualizar estas bases de dados, é devolvida uma exceção, porque as bases de dados são só de leitura.
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".
Resolução
Este problema foi corrigido nas seguintes atualizações cumulativas para SQL Server:
- Atualização cumulativa 7 para SQL Server 2019
- Atualização cumulativa 22 para SQL Server 2017
- Atualização cumulativa 13 para SQL Server 2016 SP2
Acerca das 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 que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:
- Atualização cumulativa mais recente do SQL Server 2019
- Atualização cumulativa mais recente para o SQL Server 2017
- Atualização cumulativa mais recente para o SQL Server 2016
Referências
Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.