KB2929193 - CORREÇÃO: A instância do SQL Server 2012 ou SQL Server 2014 é desligada quando você une o banco de dados como réplica secundária durante a configuração de Grupos de Disponibilidade AlwaysOn

Aplica-se A
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

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:

      

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".