KB2929193 - CORREÇÃO: a instância do SQL Server 2012 ou SQL Server 2014 é desligada quando você ingressa no banco de dados como réplica secundário 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

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:

      

Status

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