Włącz usługę SQL Server Broker, która trwa zbyt długo

134

Mam serwer Microsoft SQL 2005 i próbowałem włączyć Brokera dla mojej bazy danych z tymi T-SQL:

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

Alter DatabaseZajmuje dużo czasu procesu. Minęło już ponad pół godziny i nadal działa. Nie jesteś pewien, czy czeka na coś innego, czy też muszę najpierw coś wyczyścić, na przykład usunąć wszystkie wiadomości, umowę, kolejkę i usługi w brokerze usług?

David.Chu.ca
źródło
Na marginesie dla innych, jeśli są jakieś otwarte połączenia z bazą danych, spowodują to opóźnienie. Biegnij, sp_whoaby pokazać, czy są jakieś ... (możesz to być ty)
ChipperG,

Odpowiedzi:

11
USE master;
GO
ALTER DATABASE Database_Name
    SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
GO
USE Database_Name;
GO
Irfanullah
źródło
2

Właściwie wolę używać NEW_BROKER, działa dobrze we wszystkich przypadkach:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
Mike Darwish
źródło
2
powinieneś wyjaśnić, dlaczego wolisz to i co robi inaczej ...
Mitch Wheat
Działa dobrze i bez poświęcania czasu we wszystkich przypadkach
Mike Darwish
2

Włączenie programu SQL Server Service Broker wymaga blokady bazy danych. Zatrzymaj agenta programu SQL Server, a następnie wykonaj następujące czynności:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Zmień [MyDatabase] na nazwę odpowiedniej bazy danych, a następnie uruchom SQL Server Agent.

Jeśli chcesz zobaczyć wszystkie bazy danych, które mają włączony lub wyłączony Service Broker, wykonaj zapytanie sys.databases, na przykład:

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
Sean Perkins
źródło