KB2929193: CORRECCIÓN: SQL Server instancia de 2012 o SQL Server 2014 se cierra al unirse a la base de datos como réplica secundaria durante la configuración de grupos de disponibilidad AlwaysOn

Se aplica 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)

Síntomas

Tenga en cuenta el siguiente escenario:

  • Puede usar Microsoft SQL Server 2012 o SQL Server 2014.
  • Tiene una base de datos que tiene habilitado el agente de servicio en la réplica principal.
  • Haga una copia de seguridad de la base de datos en el servidor principal que tiene habilitado service broker y restaure en el servidor secundario.
  • Como parte de la definición del grupo de disponibilidad entre los servidores principal y secundario, intenta unir la base de datos al grupo de disponibilidad mediante el asistente Nuevo grupo de disponibilidad o el comando:
    ALTER DATABASE <dbname> SET HADR AVAILABILITY GROUP = <agname>

En este escenario, se registra el siguiente error en SQL Server registro de errores:

Nota

{
Error: 3449, Gravedad: 21, Estado: 1.
SQL Server deben apagarse para recuperar una base de datos (id. de base de datos 1). La base de datos es una base de datos de usuarios que no se pudo cerrar o una base de datos del sistema. Reinicia el SQL Server. Si la base de datos no se puede recuperar después de otro inicio, reparar o restaurar
El seguimiento SQL se detuvo debido al apagado del servidor. Id. de seguimiento = '1'. Solo se trata de un mensaje informativo; no es necesaria ninguna acción del usuario.
}

      

Causa

El problema se produce porque si se realiza una copia de seguridad de una base de datos habilitada para service broker y se restaura en el servidor secundario, el agente de servicios de la base de datos restaurada no está habilitado. La base de datos mantiene un id. de agente de servicio internamente.

Al agregar la base de datos restaurada en el servidor secundario al grupo de disponibilidad, el agente de servicio está habilitado. Se detecta el mismo GUID en la base de datos de disponibilidad y se produce el siguiente error (de forma silenciosa):
9772 "El Service Broker en la base de datos "<dbname>" no se puede habilitar porque ya hay un Service Broker habilitado con el mismo ID".

Como resultado, se produce el error 3449, ya que la base de datos se une al grupo de disponibilidad y hace que el servidor SQL se cierre inesperadamente.

Resolución

El problema se corrigió por primera vez en la siguiente actualización acumulativa de SQL Server.

Actualización acumulativa 1 para SQL Server 2014 /help/2931693

Actualización acumulativa 9 para SQL Server 2012 SP1 /help/2931078

Acerca de las actualizaciones acumulativas para SQL Server

Cada nueva actualización acumulativa de SQL Server contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Echa un vistazo a las últimas actualizaciones acumulativas de SQL Server:

      

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".