Preciso de ajuda para definir um banco de dados que foi restaurado no SINGLE_USER
modo para MULTI_USER
. Toda vez que eu corro
ALTER DATABASE BARDABARD
SET MULTI_USER;
GO
Eu recebo este erro:
Alterações no estado ou nas opções do banco de dados 'BARDABARD' não podem ser feitas no momento.
O banco de dados está no modo de usuário único e um usuário está atualmente conectado a ele.
Ele precisa estar no SINGLE_USER
modo não para configurá-lo para outro modo, mas não posso definir o banco de dados em nenhum outro modo enquanto estiver no SINGLE_USER
modo.
sql
sql-server
Rahna1970418
fonte
fonte
master
) esteja selecionado na barra de ferramentas Bancos de Dados Disponíveis quando a janela de consulta está ativa. Se ele mantém dando-lhe dores de cabeça, perto todas as outras janelas de consulta e selecione algum banco de dados do sistema inocente comomaster
outempdb
no drop-down no uma janela que lhe resta.Essa mensagem de erro geralmente significa que existem outros processos conectados ao banco de dados. Tente executar isso para ver quais estão conectados:
Isso retornará o processo e você poderá executar:
Onde [xxx] é
spid
o processo que você está tentando matar.Então você pode executar sua declaração acima.
Boa sorte.
fonte
Você pode adicionar a opção de reverter sua alteração imediatamente.
fonte
ROLLBACK IMMEDIATE
exatamente faz?ALTER DATABASE
transação do extrato, ao contrário doWITH ROLLBACK X SECONDS
que aguarda a conclusão das transações antes de forçá-las a retroceder ou a aguardar indefinidamente até que não haja transações pendentes (que eu acredito ser o padrão, mas não consigo encontrar no documento no momento). É o equivalente a "interrompa tudo o que você está fazendo agora e faça isso".SQL Server 2012:
clique com o
DB > Properties > Options > [Scroll down] State > RestrictAccess > select Multi_user
botão direito do mouse no e clique em OK.Voila!
fonte
Eu tive o mesmo problema e foi corrigido pelas seguintes etapas - referência: http://giladka8.blogspot.com.au/2011/11/database-is-in-single-user-mode-and.html
fonte
Isso funcionou bem pra mim.
Etapa 1. Clique com o botão direito do mouse no mecanismo de banco de dados, clique no monitor de atividades e veja qual processo está tendo conexão. Mate esse usuário específico e execute a consulta imediatamente.
Passo 2.
e atualize o banco de dados.
fonte
Na verdade, eu tive um problema em que meu banco de dados estava praticamente bloqueado pelos processos e uma condição de corrida com eles, quando recebi um comando executado e eles o bloquearam novamente ... tive que executar os seguintes comandos novamente no SSMS e me desliguei e, a partir daí, fiz minha restauração e voltei a ficar online, as duas consultas em que:
Primeira execução:
Em seguida, imediatamente após (na segunda janela de consulta):
Fiz o que eu precisava e o trouxe novamente online. Obrigado a todos que escreveram essas peças para eu combinar e resolver meu problema.
fonte
Talvez seja melhor fazer logon no servidor diretamente, em vez de usar o SQL Management Studio
Certifique-se de que a conta que você efetua login seja dbowner do banco de dados que você deseja definir como MULTI_USER. Efetue login como sa (usando autenticação do servidor SQL), se puder
Se o seu banco de dados for usado pelo IIS, pare o site e o pool de aplicativos que o utilizam - este pode ser o processo que está conectado e impedindo que você defina como MULTI_USER
Consulte aqui se você ainda tiver problemas:
http://www.sqlservercentral.com/blogs/pearlknows/2014/04/07/help-im-stuck-in-single-user-mode-and-can-t-get-out/
COMO ÚLTIMA ALTERNATIVA - Se você tentou tudo acima e está ficando desesperado, tente parar a instância do servidor SQL e iniciá-la novamente
fonte
Acabei de corrigir usando as etapas a seguir. Isso pode ajudá-lo.
Passo 1
Passo 2
Etapa 3
Passo 4
Etapa: 5
Em seguida, execute a consulta a seguir.
Aproveitar...!
fonte
O código abaixo funcionou para mim quando eu não conhecia o SPID específico que foi usado para mudar para o
singleuser
modo.fonte
para trazê-lo de volta vivo
fonte
isso funcionou bem pra mim
Espero que este trabalho para todos Obrigado Ramesh Kumar
fonte
Se o acima não funcionar, encontre o nome de login do spid e desative-o em Segurança - Logins
fonte
Você não pode fazer isso porque o banco de dados está no modo único. Acima de tudo, mas você deve saber que: quando você abriu o sql management studio, ele não conhece nenhum usuário no banco de dados, mas quando você clica no banco de dados, ele é considerado o único usuário e seu comando não está funcionando. Faça o seguinte: feche o estúdio de gerenciamento e abra-o novamente. nova janela de consulta sem selecionar nenhum banco de dados, escreva o script de comando.
faça f5 wolla tudo ok!
fonte
Eu resolvi o problema facilmente
Clique com o botão direito do mouse no nome do banco de dados e renomeie-o
Depois de alterar, clique com o botão direito do mouse no nome do banco de dados -> propriedades -> opções -> vá para o final da rolagem RestrictAccess (SINGLE_USER para MULTI_USER)
Agora, novamente, você pode renomear o banco de dados como seu nome antigo.
fonte
Em mais de três ocasiões trabalhando com o SQL Server 2014, tive um banco de dados convertido para o modo Usuário Único sem que eu alterasse nada. Deve ter ocorrido durante a criação do banco de dados de alguma forma. Todos os métodos acima nunca funcionaram, pois sempre recebi um erro ao qual o banco de dados estava no modo de usuário único e não podia ser conectado.
A única coisa que comecei a trabalhar foi reiniciar o serviço Windows Server do SQL Server. Isso me permitiu conectar-me ao banco de dados e fazer as alterações necessárias ou excluir o banco de dados e começar de novo.
fonte
basta acessar as propriedades do banco de dados e alterar o modo ÚNICO USUÁRIO para MULTI USUÁRIO
NOTA: se não funcionar, faça o backup e a restauração do banco de dados e faça o método acima novamente
* Único = SINGLE_USER
Vários = MULTI_USER
Restrito = RESTRICTED_USER
fonte
Depois de entrar no modo de usuário único, um cliente pode estabelecer apenas UMA conexão com o SQL Server, lembre-se de que o "Pesquisador de Objetos" ocupa uma conexão (separada); portanto, se você estiver tentando executar uma instrução de Multiusuários em uma consulta janela, você receberá um erro de que, no modo de usuário único, não pode estabelecer outra conexão.
Para mim, esse não era o problema, no entanto, no meu caso, havia poucos processos automatizados que persistentemente (em poucos segundos) estabeleciam conexões, assim que coloquei o banco de dados no modo de usuário único e me desconectei, um dos os processos estabelecidos / ocupados da conexão (antes que eu pudesse iniciar minha operação de restauração). Assim que eu matava essas conexões - elas se reconectavam e quando eu executava o comando Restaurar, recebia o erro de que a conexão já está ocupada.
Para resolver isso, tive que escrever as
kill
instruções, alterar asUser-Mode
instruções eRestore
operações em uma única janela de consulta e quando as executei de uma só vez, pronto! funcionou.Espero que isso ajude os outros.
fonte
Eu estava tendo problemas com um banco de dados local.
Consegui resolver esse problema parando o servidor SQL, iniciando o servidor SQL e usando a interface do usuário do SSMS para alterar as propriedades do banco de dados para Multi_User.
O banco de dados entrou no modo "Usuário único" quando eu estava tentando restaurar um backup. Eu não havia criado um backup do banco de dados de destino antes de tentar restaurar (SQL 2017). isso o levará sempre.
Pare o SQL Server, inicie o SQL Server e execute os scripts acima ou use a interface do usuário.
fonte
Pesquisei a solução por um tempo e finalmente encontrei a solução abaixo,
O SSMS em geral usa várias conexões com o banco de dados nos bastidores.
Você precisará eliminar essas conexões antes de alterar o modo de acesso. (Fiz isso com EXEC (@kill); no modelo de código abaixo.)
Então,
Execute o SQL a seguir para definir o banco de dados no modo MULTI_USER.
Para voltar ao modo de usuário único, você pode usar:
Isso deve funcionar. Feliz codificação !!
Obrigado!!
fonte