Это дубликат вопроса, который я задал на stackoverflow , но мне посоветовали, чтобы кто-то здесь мог лучше понять, что происходит.
У меня возникает спорадическая проблема: при обновлении SQL Server в однопользовательском режиме с использованием .NET SqlConnection какое-то другое приложение каким-то образом входит в базу данных во время выполнения кода SQL и выводит мой процесс из строя. SqlConnection не закрывается и не утилизируется. Но какое-то другое приложение каким-то образом оказывается подключенным к базе данных, и это разрывает мое соединение.
Когда я запустил sp_who, я увидел, что процесс, который взял на себя управление базой данных, это Command = "TASK MANAGER".
Кто-нибудь может сказать мне, что это за процесс, какова его цель и как в мире он может попасть в базу данных, которая находится в однопользовательском режиме и существует активное соединение?
источник
Ответы:
Если бы вы не отключили AUTO_UPDATE_STATISTICS ASYNC сегодня, вы бы не смогли войти в свою базу данных, вы можете решить эту проблему, переведя вашу базу данных в автономный режим. Важно знать, что вам нужно установить высокий приоритет взаимоблокировки, иначе вы будете заблокированы из-за команды. Используйте следующие команды, чтобы выйти из ОДНОГО режима пользователя
С последующим
С последующим
источник
SET MULTIUSER WITH ROLLBACK IMMEDIATE
работал только сам по себе , когдаSET DEADLOCK_PRIORITY HIGH
был сделан первыйЯ думаю, что тайна, наконец, была решена :
источник
Остановите трассировку расширенных событий system_health. Это будет перечислено под
SQL Server Management Studio
-> [ServerName]
-> Management
-> Extended Events
-> Right-Click on 'System_health'
-> Hit Stop Session
Как только блокировщик исправлен, перезапустите сеанс.
источник
Вы должны отключить агент SQL перед запуском одноразового режима. По мере того как агент будет получать доступ от одного пользователя. Помните, что единственный пользователь - это не вы первый пользователь / процесс, подключившийся.
источник