[sql-server-2005] SQL Server Broker가 너무 오래 걸리도록 설정

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 분 이상이 지났으며 여전히 실행 중입니다. 다른 것을 기다리고 있는지 또는 서비스 브로커에서 모든 메시지, 계약, 대기열 및 서비스 삭제와 같은 것을 먼저 정리 해야하는지 확실하지 않습니까?



답변

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;


답변

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를 활성화하려면 데이터베이스 잠금이 필요합니다. 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


답변