Sintomas
Tenha em conta o seguinte cenário:
- Utiliza o Microsoft SQL Server 2012 ou SQL Server 2014.
- Você tem um banco de dados que tem o agente de serviço habilitado na réplica primária.
- Faça backup do banco de dados no servidor primário que tem o agente de serviço habilitado e restaure-o no servidor secundário.
- Como parte da definição do grupo de disponibilidade entre os servidores primário e secundário, você tenta associar 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 em SQL Server log de erros:
Nota
{
Erro: 3449, gravidade: 21, estado: 1.
SQL Server tem de encerrar para recuperar uma base de dados (ID de base de dados 1). 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 SQL Server. Se a base de dados não conseguir recuperar após outro arranque, reparação ou restauro
O Rastreamento SQL foi interrompido devido ao desligamento do servidor. ID de Rastreio = '1'. Esta é apenas uma mensagem informativa; Não é necessária qualquer ação do utilizador.
}
Causa
O problema ocorre porque se um banco de dados habilitado para agente de serviço for copiado e restaurado para o servidor secundário, o agente de serviço no banco de dados restaurado não estará habilitado. A base de dados ainda mantém internamente um ID do agente de serviços.
Quando você adiciona o banco de dados restaurado no servidor secundário ao grupo de disponibilidade, o agente de serviço é 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á há um Service Broker habilitado com a mesma ID".
Isto resulta no erro 3449, uma vez que a base de dados está a aderir ao grupo de disponibilidade e faz com que o SQL Server seja encerrado inesperadamente.
Resolução
O problema foi corrigido na atualização cumulativa seguinte do SQL Server.
Atualização Cumulativa 1 para SQL Server 2014 /pt-PT/help/2931693
Atualização Cumulativa 9 para SQL Server 2012 SP1 /en-us/help/2931078
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 para o SQL Server 2014
- Atualização cumulativa mais recente para o SQL Server 2012 SP1
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".