Cho phép Nhà môi giới máy chủ SQL mất quá nhiều thời gian


134

Tôi có máy chủ Microsoft SQL 2005 và tôi đã cố gắng kích hoạt Nhà môi giới cho cơ sở dữ liệu của mình bằng các T-SQL đó:

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

Các Alter Databaseđòi hỏi thời gian dài để xử lý. Bây giờ là hơn nửa giờ và nó vẫn đang chạy. Không chắc chắn nếu nó đang chờ đợi điều gì khác hoặc tôi phải dọn dẹp bất cứ điều gì trước tiên, chẳng hạn như xóa tất cả các tin nhắn, hợp đồng, hàng đợi và dịch vụ theo môi giới dịch vụ?


Là một lưu ý phụ cho những người khác, nếu có bất kỳ kết nối mở nào với db, họ sẽ gây ra sự chậm trễ này. Chạy sp_whođể hiển thị nếu có bất kỳ .. (có thể là bạn)
ChipperG

Câu trả lời:



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

2

Trên thực tế tôi thích sử dụng hơn NEW_BROKER, nó hoạt động tốt trên tất cả các trường hợp:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

2
bạn nên giải thích lý do tại sao bạn thích nó và những gì nó làm khác đi ....
Mitch Wheat

Nó hoạt động tốt và không mất thời gian trong các trường hợp alll
Mike Darwish

2

Kích hoạt SQL Server Service Broker yêu cầu khóa cơ sở dữ liệu. Dừng Tác nhân Máy chủ SQL và sau đó thực hiện các thao tác sau:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Thay đổi [MyDatabase] với tên cơ sở dữ liệu của bạn được đề cập và sau đó khởi động SQL Server Agent.

Nếu bạn muốn xem tất cả các cơ sở dữ liệu đã bật hoặc tắt Nhà môi giới dịch vụ, thì hãy truy vấn sys.database, ví dụ:

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.