Sintomas
Considere o seguinte cenário:
- Você usa o Microsoft SQL Server 2012 ou o SQL Server 2014.
- Você tem um banco de dados com o agente de serviços habilitado na réplica primária.
- Você faz backup do banco de dados no servidor primário que tem o agente de serviços habilitado e o restaura no servidor secundário.
- Como parte da definição do grupo de disponibilidade entre os servidores primário e secundário, você tenta unir o banco de dados ao grupo de disponibilidade usando o assistente Novo Grupo de Disponibilidade ou o comando:
ALTER DATABASE <dbname> SET HADR AVAILABILITY GROUP = <agname>
Nesse cenário, o seguinte erro é registrado no log de erros do SQL Server:
Observação
{
Erro: 3449, Gravidade: 21, Estado: 1.
O SQL Server deve desligar para recuperar um banco de dados (ID 1 do banco de dados). O banco de dados é um banco de dados de usuário que não pôde ser desligado ou um banco de dados do sistema. Reinicie o SQL Server. Se o banco de dados não puder ser recuperado após outra inicialização, repare ou restaure
O Rastreamento SQL foi interrompido devido ao desligamento do servidor. ID do Rastreamento = '1'. Esta é apenas uma mensagem informativa; Nenhuma ação do usuário é necessária.
}
Causa
O problema ocorre porque, se um banco de dados habilitado para o Service Broker tiver backup e for restaurado no servidor secundário, o service broker no banco de dados restaurado não estará habilitado. O banco de dados ainda mantém uma ID de agente de serviço internamente.
Quando você adiciona o banco de dados restaurado no servidor secundário ao grupo de disponibilidade, o agente de serviços é habilitado. O mesmo GUID no banco de dados de disponibilidade é detectado e o seguinte erro é gerado (silenciosamente):
9772 "O Service Broker no banco de dados "<dbname>" não pode ser habilitado porque já existe um Service Broker habilitado com a mesma ID".
Isso resulta no erro 3449, pois o banco de dados está ingressando no grupo de disponibilidade, e faz com que o SQL Server seja desligado inesperadamente.
Resolução
O problema foi corrigido pela primeira vez na atualização cumulativa seguinte do SQL Server.
Atualização cumulativa 1 para SQL Server 2014 /pt-br/help/2931693
Atualização cumulativa 9 para SQL Server 2012 SP1 /en-us/help/2931078
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 2014
- Atualização cumulativa mais recente do SQL Server 2012 SP1
Status
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".