启用SQL Server代理需要很长时间
我有一个Microsoft SQL服务器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
需要很长时间来处理。 现在已经过了半个小时了,还在运行。 不知道是否正在等待其他事情,或者我必须先清理任何东西,比如删除服务代理下的所有消息,合同,队列和服务?
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;
使用下面的代码,您可以立即启用服务代理队列
ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
USE master; GO ALTER DATABASE Database_Name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE; GO USE Database_Name; GO
其实我更喜欢使用NEW_BROKER
,它在任何情况下工作都很好:
ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
启用SQL Server Service Broker需要数据库locking。 停止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