Síntomas
Imagine la siguiente situación:
-
Usa Microsoft SQL Server 2012 o SQL Server 2014.
-
Tiene una base de datos que tiene el Service Broker habilitado en la réplica principal.
-
Haga una copia de seguridad de la base de datos en el servidor principal que tiene el Service Broker habilitado y restáurelo en el servidor secundario.
-
Como parte de la definición del grupo de disponibilidad entre los servidores principal y secundario, intente unir la base de datos al grupo de disponibilidad mediante el Asistente para nuevo grupo de disponibilidad o el comando: ALTER DATABASE <dbname> Set HADR Availability group = <agname>
En este escenario, se registra el error siguiente en el registro de errores de SQL Server:
{Error: 3449, gravedad: 21, estado: 1. SQL Server debe cerrarse para recuperar una base de datos (ID. de base de datos 1). La base de datos es una base de datos de usuario que no se pudo apagar o una base de datos del sistema. Reinicie SQL Server. Si la base de datos no se puede recuperar después de que otro Inicio, reparación o restoreSQL se haya detenido debido a que el servidor se ha apagado. ID. de seguimiento = ' 1 '. Este es un mensaje informativo únicamente; no se requiere ninguna acción por el usuario.}
Causa
El problema se produce porque si se realiza una copia de seguridad de una base de datos habilitada para Service Broker y restaurarla en el servidor secundario, el Service Broker de la base de datos restaurada no está habilitado. La base de datos sigue manteniendo un identificador de Service Broker interno. Al agregar la base de datos restaurada en el servidor secundario al grupo de disponibilidad, se habilita el Service Broker. Se detecta el mismo GUID en la base de datos de disponibilidad y se produce el siguiente error (silenciosamente): 9772 "el Service Broker de la base de datos"<dbname>"no se puede habilitar porque ya hay un Service Broker habilitado con el mismo Id. Esto da como resultado un error 3449 porque la base de datos se une al grupo de disponibilidad y hace que SQL Server se cierre inesperadamente.
Resolución
El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 1 para SQL Server 2014 /en-us/help/2931693
Actualización acumulativa 9 para SQL Server 2012 SP1 /en-us/help/2931078
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".