IT박스

너무 오래 걸리는 SQL Server Broker 사용

itboxs 2020. 7. 4. 11:16
반응형

너무 오래 걸리는 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;

아래 코드를 사용하면 Service Broker 대기열을 즉시 활성화 할 수 있습니다

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

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

실제로 나는 사용하는 것을 선호하고 NEW_BROKER있으며 모든 경우에 잘 작동합니다.

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

필자의 경우 디버깅 모드에있는 것처럼 웹 프로젝트에서 SQL 데이터베이스를 사용하고있었습니다. 그래서 모든 연결을 닫으면 정상적으로 실행되었습니다.

참고 URL : https://stackoverflow.com/questions/1094202/enable-sql-server-broker-taking-too-long-time

반응형