martes, 3 de julio de 2012

No se puede habilitar el Service Broker en la base de datos "msdb" porque el GUID del Service Broker de la base de datos no coincide

Es posible que por alguna razón tengamos que activar en nuestro servidor SQL Server el Service Broker, por ejemplo, si estamos configurando el servicio Database Mail. Así pues lanzamos las siguientes consultas para activarlo:
-- Activación del Service Broker
USE master;
GO

ALTER DATABASE [DatabaseName] SET ENABLE_BROKER;
GO
Y nos aparece un error del tipo que no nos permitie habilitar el Service Broker:
Mens. 9776, Nivel 16, Estado 1, Línea 1
No se puede habilitar el Service Broker en la base de datos "msdb" porque el GUID del Service Broker de la base de datos (D31B9C5E-15C7-40CC-86E7-D389AE0B20AE) no coincide con el de sys.databases (25FD4470-CECA-4095-B460-8E8684DE420B).
Mens. 5069, Nivel 16, Estado 1, Línea 1
Error de la instrucción ALTER DATABASE.
Este error te puede aparecer, por ejemplo, si en un servidor has restaurado la base de datos master y no la msdb que es la que usa Service Broker. Es posible que ni siquiera salga el mensaje y se quede la consulta esperando,... como colgada ejecutándose... eso es debido al punto 1 que comento más adelante, es porque está el agente de SQL Server en ejecución.

Para solucionar el problema haremos lo siguiente:
  1. Pararemos el agente SQL Server ya que éste utiliza la base de datos msdb para programar alertas y trabajos y necesitamos tenerla en modo exclusivo para poder modificarla (ALTER DATABASE).

  2. Lanzamos las siguientes consultas para crear un nuevo Broker para la base de datos existente y activarlo:
    -- Creamos nuevo Broker...
    ALTER DATABASE MSDB SET NEW_BROKER
    GO
    
    -- ... y lo activamos
    ALTER DATABASE MSDB SET ENABLE_BROKER
    GO
    
Con lo anterior tendréis el problema solucionado y podréis habilitar el Service Broker.

¿Qué es exactamente el Service Broker?

SQL Server Service Broker proporciona la compatibilidad nativa de SQL Server Database Engine (Motor de base de datos de SQL Server) para aplicaciones de mensajería y de cola lo que hace más fácil crear aplicaciones complejas que usen los componentes de base de datos para la comunicación entre bases de datos distintas. Se puede usar Service Broker para crear con facilidad aplicaciones distribuidas y fiables. Podéis encontrar más información sobre el Service Broker en este link del MSDN:

http://msdn.microsoft.com/es-es/library/bb522893(v=sql.105).aspx

No se puede habilitar service broker

Dentro de areaTIC puedes encontrar otros artículos interesantes, no dudes en consultar nuestro archivo.


LECTURAS RELACIONADAS RECOMENDADAS POR AREATIC.NET

1 comentario:

Anónimo dijo...

Exceleten!!!!
Me fue de mucha ayuda.

Publicar un comentario