Habilitar el Broker de SQL Server tardando demasiado

134

Tengo un servidor Microsoft SQL 2005 e intenté habilitar Broker para mi base de datos con esos T-SQL:

 SELECT name, is_broker_enabled FROM sys.databases 
 -- checking its status 0 in my case
 ALTER DATABASE myDatabase SET ENABLE_BROKER

El proceso Alter Databaselleva mucho tiempo. Ahora es más de media hora y todavía está funcionando. ¿No está seguro si está esperando algo más o si tengo que limpiar algo primero, como eliminar todos los mensajes, contratos, colas y servicios en Service Broker?

David.Chu.ca
fuente
Como nota al margen para otros, si hay conexiones abiertas a la base de datos, causarían este retraso. Corre sp_whopara mostrar si hay alguno ... (podrías ser tú)
ChipperG

Respuestas:

11
USE master;
GO
ALTER DATABASE Database_Name
    SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
GO
USE Database_Name;
GO
Irfanullah
fuente
2

En realidad prefiero usarlo NEW_BROKER, funciona bien en todos los casos:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
Mike Darwish
fuente
2
deberías explicar por qué lo prefieres y qué hace de manera diferente ...
Mitch Wheat
Está funcionando bien y sin tomarse un tiempo en todos los casos
Mike Darwish
2

La habilitación de SQL Server Service Broker requiere un bloqueo de la base de datos. Detenga el Agente SQL Server y luego ejecute lo siguiente:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Cambie [MyDatabase] con el nombre de su base de datos en cuestión y luego inicie el Agente SQL Server.

Si desea ver todas las bases de datos que tienen habilitado o deshabilitado Service Broker, consulte sys.databases, por ejemplo:

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
Sean Perkins
fuente