Aktivieren Sie SQL Server Broker zu lange

134

Ich habe einen Microsoft SQL Server 2005 und habe versucht, Broker für meine Datenbank mit diesen T-SQL zu aktivieren:

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

Die Alter DatabaseBearbeitung dauert lange. Es ist jetzt über eine halbe Stunde und es läuft noch. Sie sind sich nicht sicher, ob es auf etwas anderes wartet oder ob ich zuerst etwas bereinigen muss, z. B. alle Nachrichten, Verträge, Warteschlangen und Dienste unter Service Broker löschen?

David.Chu.ca
quelle
Als Randnotiz für andere, wenn es offene Verbindungen zur Datenbank gibt, würden sie diese Verzögerung verursachen. Laufen Sie, um sp_whozu zeigen, ob es welche gibt .. (Sie könnten es sein)
ChipperG

Antworten:

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

Eigentlich bevorzuge ich die Verwendung NEW_BROKER, es funktioniert in allen Fällen gut:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
Mike Darwish
quelle
2
Sie sollten erklären, warum Sie es bevorzugen und was es anders macht ....
Mitch Wheat
Es funktioniert gut und nimmt sich in allen Fällen keine Zeit
Mike Darwish
2

Das Aktivieren von SQL Server Service Broker erfordert eine Datenbanksperre. Stoppen Sie den SQL Server-Agenten und führen Sie Folgendes aus:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Ändern Sie [MyDatabase] mit dem Namen Ihrer betreffenden Datenbank und starten Sie dann den SQL Server-Agenten.

Wenn Sie alle Datenbanken anzeigen möchten, für die Service Broker aktiviert oder deaktiviert ist, fragen Sie sys.databases ab, zum Beispiel:

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