SQL Server Broker'ın çok uzun sürmesini etkinleştir


134

Bir Microsoft SQL Server 2005 var ve ben bu T-SQL ile benim veritabanı için Broker etkinleştirmek çalıştı:

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

Alter DatabaseSürecine uzun zaman alır. Şimdi yarım saatin üzerinde ve hala çalışıyor. Başka bir şey mi beklediğinden emin değil miyim yoksa servis komisyoncusu altındaki tüm mesajları, sözleşmeyi, kuyruğu ve hizmetleri silmek gibi bir şeyi temizlemem gerekiyor mu?


Diğerleri için bir yan not olarak, db'ye açık bağlantılar varsa, bu gecikmeye neden olurlar. sp_whoVarsa göstermek için koş .. (sen olabilir)
ChipperG

Yanıtlar:



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

2

Aslında kullanmayı tercih ediyorum NEW_BROKER, tüm durumlarda iyi çalışıyor:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

2
neden tercih ettiğini ve neyi farklı yaptığını açıklamalısın ....
Mitch Wheat

İyi çalışıyor ve tüm durumlarda zaman ayırmadan
Mike Darwish

2

SQL Server Service Broker'ı etkinleştirmek için bir veritabanı kilidi gerekir. SQL Server Agent'ı durdurun ve aşağıdakileri yürütün:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

[MyDatabase] öğesini söz konusu veritabanınızın adıyla değiştirin ve SQL Server Agent'ı başlatın.

Hizmet Aracısı'nın etkinleştirildiği veya devre dışı bırakıldığı tüm veritabanlarını görmek istiyorsanız, örneğin sys.databases öğesini sorgulayın:

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.