启用S​​QL Server Broker需要很长时间

时间:2009-07-07 19:10:52

标签: sql-server-2005 service-broker

我有一个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需要很长时间才能处理。现在已超过半小时,它仍在运行。不确定它是否在等待其他东西或者我必须先清理任何内容,例如删除服务代理下的所有消息,合同,队列和服务?

6 个答案:

答案 0 :(得分:240)

http://rusanu.com/2006/01/30/how-long-should-i-expect-alter-databse-set-enable_broker-to-run/

alter database [<dbname>] set enable_broker with rollback immediate;

答案 1 :(得分:19)

使用以下代码,您可以立即启用服务代理队列

ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;

答案 2 :(得分:10)

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

答案 3 :(得分: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

答案 4 :(得分:1)

实际上我更喜欢使用NEW_BROKER,它在所有情况下都能正常工作:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

答案 5 :(得分:0)

就我而言,我在Web项目中使用的是sql数据库,就像在调试模式下一样。因此,当我关闭所有连接时,它执行得很好。