启用S​​QL Server Broker花费的时间太长


134

我有一个Microsoft SQL Server 2005,并且尝试使用那些T-SQL为我的数据库启用Broker:

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

Alter Database需要很长的时间来处理。现在已经超过半小时,并且仍在运行。不确定是否正在等待其他内容,还是我必须先清理所有内容,例如删除Service Broker下的所有消息,合同,队列和服务?


作为其他人的补充,如果与数据库有任何打开的连接,则它们将导致此延迟。运行sp_who以显示是否有任何..(可能是您)
ChipperG

Answers:



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
你应该解释为什么你喜欢它,它做什么不同的....
米奇小麦

它工作正常,在所有情况下都无需花费时间
Mike Darwish

2

启用S​​QL 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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.