Esta é uma duplicata da pergunta que fiz no stackoverflow , mas fui avisado que alguém aqui poderia ter uma idéia melhor do que está acontecendo.
Eu tenho um problema esporádico, ao atualizar o SQL Server no modo de usuário único, usando o .NET SqlConnection, algum outro aplicativo de alguma forma efetua login no banco de dados enquanto o código SQL está sendo executado e inicia meu processo. SqlConnection não é fechado ou descartado de forma alguma. Mas alguma outra aplicação acaba conectada ao banco de dados e isso expulsa minha conexão.
Quando executo sp_who, pude ver que um processo que assumiu o controle do banco de dados é Command = "TASK MANAGER".
Alguém poderia me dizer qual é esse processo, qual é o seu objetivo e como ele pode entrar em um banco de dados, que está no modo de usuário único e existe uma conexão ativa?
fonte
Respostas:
Teve o mesmo problema hoje: se você não desativou seu AUTO_UPDATE_STATISTICS ASYNC, não poderá entrar no seu banco de dados, poderá resolvê-lo colocando-o offline. É importante saber que você precisa definir sua prioridade de conflito como alta, caso contrário, você ficará fora do comando. Use os seguintes comandos para sair do modo de usuário ÚNICO
Seguido por
Seguido por
fonte
SET MULTIUSER WITH ROLLBACK IMMEDIATE
trabalhou apenas por si só quandoSET DEADLOCK_PRIORITY HIGH
foi feito pela primeira vezEu acho que o mistério finalmente foi resolvido :
fonte
Pare o rastreamento de eventos estendidos "system_health". Será listado em
SQL Server Management Studio
-> [ServerName]
-> Management
-> Extended Events
-> Right-Click on 'System_health'
-> Hit Stop Session
Depois que o bloqueador estiver corrigido, reinicie a sessão.
fonte
Você precisa desativar o SQL Agent 'antes' de iniciar o modo de uso único. À medida que o agente conta, obtém acesso de usuário único. Lembre-se de que o usuário único não é o primeiro usuário / processo a se conectar.
fonte