Включити брокер SQL Server занадто довго


134

У мене є сервер 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потребує багато часу. Зараз уже понад півгодини, і він все ще працює. Не впевнений, чи чекає він ще чогось, або мені доведеться спочатку щось очистити, як-от видалити всі повідомлення, контракт, чергу та послуги у сервісного брокера?


Як бічна примітка для інших, якщо є якісь відкриті з'єднання з db, вони спричинили б це затримку. Біжи, sp_whoщоб показати, чи є .. (це може бути ти)
ChipperG

Відповіді:




2

Насправді я вважаю за краще використовувати NEW_BROKER, він працює чудово у всіх випадках:

ALTER DATABASE [dbname] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

2
Ви повинні пояснити, чому Ви віддаєте перевагу, і що це робить по-іншому ....
Мітч Пшеничний

Це добре працює і не витрачає часу на всі справи
Майк Дарвіш

2

Увімкнення сервера-посередника SQL Server потребує блокування бази даних. Зупиніть агент SQL Server та виконайте такі дії:

USE master ;
GO

ALTER DATABASE [MyDatabase] SET ENABLE_BROKER ;
GO

Змініть [MyDatabase] з назвою відповідної бази даних, а потім запустіть агент SQL Server.

Якщо ви хочете побачити всі бази даних, у яких увімкнено або вимкнено сервіс-посередник, то запитайте, наприклад, sys.datababa:

SELECT
    name, database_id, is_broker_enabled
FROM sys.databases
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.