SQL Server Brokerの有効化に時間がかかりすぎる


134

私はMicrosoft SQL Server 2005を使用しており、これらのT-SQLを使用してデータベースのブローカーを有効にしようとしました。

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

Alter Database処理には時間がかかります。現在は30分以上あり、まだ実行中です。それが何か他のものを待っているのか、それともサービスブローカーの下のすべてのメッセージ、コントラクト、キュー、サービスを削除するなど、最初に何かをクリーンアップする必要があるのか​​わかりませんか?


他の側の注意として、データベースへのオープンな接続がある場合、それらはこの遅延を引き起こします。sp_who何かがあるかどうかを確認するために実行します..(それはあなたかもしれません)
ChipperG

回答:



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

2

実際に私は使用することを好んでいますNEW_BROKER、それはすべての場合にうまくいきます:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

2
あなたがそれを好む、それは違った何なぜあなたは....説明する必要があります
ミッチ小麦

すべてのケースで問題なく動作し、時間もかかりません
マイクダーウィッシュ

2

SQL Server Service Brokerを有効にするには、データベースロックが必要です。SQL Serverエージェントを停止して、次を実行します。

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

[MyDatabase]を問題のデータベースの名前に変更し、SQL Serverエージェントを起動します。

Service Brokerが有効または無効になっているすべてのデータベースを表示するには、たとえばsys.databasesにクエリを実行します。

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.