Necesito ayuda para configurar una base de datos que se restauró en SINGLE_USER
modo a MULTI_USER
. Cada vez que corro
ALTER DATABASE BARDABARD
SET MULTI_USER;
GO
Me sale este error:
Los cambios en el estado o las opciones de la base de datos 'BARDABARD' no se pueden realizar en este momento.
La base de datos está en modo de usuario único y actualmente hay un usuario conectado a ella.
Debe estar en SINGLE_USER
modo no para configurarlo en otro modo, pero no puedo configurar la base de datos en ningún otro modo mientras esté en SINGLE_USER
modo.
sql
sql-server
Rahna1970418
fuente
fuente
master
) esté seleccionada en el menú desplegable de la barra de herramientas Bases de datos disponibles cuando la ventana de consulta esté activa. Si le sigue dando dolores de cabeza, cierre todas las demás ventanas de consulta y seleccione alguna base de datos de sistema inocente comomaster
otempdb
en el menú desplegable de la ventana que le queda.Ese mensaje de error generalmente significa que hay otros procesos conectados a la base de datos. Intente ejecutar esto para ver cuáles están conectados:
Eso le devolverá el proceso y luego podrá ejecutar:
Donde [xxx] es
spid
el proceso que estás tratando de matar.Entonces puede ejecutar su declaración anterior.
Buena suerte.
fuente
Puede agregar la opción de deshacer su cambio de inmediato.
fuente
ROLLBACK IMMEDIATE
exactamente?ALTER DATABASE
transacción del estado de cuenta, en lugar deWITH ROLLBACK X SECONDS
esperar a que finalicen las transacciones antes de obligarlas a revertir o esperar indefinidamente hasta que no haya transacciones pendientes (lo cual creo que es el valor predeterminado, pero Parece que no puedo encontrar en el documento en este momento). Es el equivalente a "detener todo lo que está haciendo ahora y hacer esto".SQL Server 2012:
haga clic derecho en
DB > Properties > Options > [Scroll down] State > RestrictAccess > select Multi_user
y haga clic en Aceptar.Voila!
fuente
Tuve el mismo problema y se solucionó con los siguientes pasos: referencia: http://giladka8.blogspot.com.au/2011/11/database-is-in-single-user-mode-and.html
fuente
Esto funcionó bien para mi.
Paso 1. Haga clic derecho en el motor de la base de datos, haga clic en el monitor de actividad y vea qué proceso tiene conexión. Mata a ese usuario en particular y ejecuta la consulta inmediatamente.
Paso 2.
y actualice la base de datos.
fuente
De hecho, tuve un problema en el que mi db estaba prácticamente bloqueado por los procesos y una condición de carrera con ellos, para cuando ejecuté un comando actualizado y lo bloquearon nuevamente ... Tuve que ejecutar los siguientes comandos de forma consecutiva en SSMS y me desconecté y desde allí hice mi restauración y volví a estar en línea muy bien, las dos consultas fueron:
Primero corrió:
Luego, inmediatamente después (en la segunda ventana de consulta):
Hice lo que necesitaba y luego lo volví a poner en línea. Gracias a todos los que escribieron estas piezas para que combine y resuelva mi problema.
fuente
Puede ser mejor iniciar sesión directamente en el servidor en lugar de usar SQL Management Studio
Asegúrese de que la cuenta con la que inicia sesión sea dbowner para la base de datos que desea establecer en MULTI_USER. Inicie sesión como sa (utilizando la autenticación del servidor SQL) si puede
Si IIS usa su base de datos, detenga el sitio web y el grupo de aplicaciones que lo usan ; este puede ser el proceso que está conectado y le impide configurar MULTI_USER
Consulte aquí si aún tiene 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 : si ha intentado todo lo anterior y se está desesperando, puede intentar detener la instancia del servidor SQL y volver a iniciarla
fuente
Acabo de arreglarlo usando los siguientes pasos, puede ayudarte.
Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
Luego ejecute la siguiente consulta.
Disfrutar...!
fuente
El siguiente código me funcionó cuando no conocía el SPID específico que se utilizó para cambiar al
singleuser
modo.fuente
luego traerlo de vuelta con vida
fuente
Esto funcionó bien para mi
Espero que esto funcione para todos Gracias Ramesh Kumar
fuente
Si lo anterior no funciona, busque el nombre de usuario del spid y desactívelo en Seguridad - Inicios de sesión
fuente
No podría hacer eso porque la base de datos en modo único. Sobre todo bien, pero debe saber que: cuando abrió el estudio de administración de SQL no conoce a ningún usuario en la base de datos, pero cuando hace clic en la base de datos, lo considera el usuario único y su comando no funciona. Solo haz eso: cierra el estudio de administración y vuelve a abrirlo. nueva ventana de consulta sin seleccionar ninguna base de datos, escriba el script de comando.
hacer f5 wolla todo bien!
fuente
He resuelto el problema fácilmente
Haga clic derecho en el nombre de la base de datos, cámbiele el nombre
Después de cambiar, haga clic derecho en el nombre de la base de datos -> propiedades -> opciones -> vaya al final del desplazamiento RestrictAccess (SINGLE_USER a MULTI_USER)
Ahora, de nuevo, puede cambiar el nombre de la base de datos como su nombre anterior.
fuente
En más de 3 ocasiones trabajando con SQL Server 2014, he convertido una base de datos al modo de usuario único sin que yo cambie nada. Debe haber ocurrido durante la creación de la base de datos de alguna manera. Todos los métodos anteriores nunca funcionaron, ya que siempre recibí un error de que la base de datos estaba en modo de usuario único y no podía conectarse.
Lo único que pude trabajar fue reiniciar el servicio de Windows del servidor SQL. Eso me permitió conectarme a la base de datos y hacer los cambios necesarios o eliminar la base de datos y comenzar de nuevo.
fuente
simplemente vaya a las propiedades de la base de datos y cambie el modo de USUARIO ÚNICO a USUARIO MÚLTIPLE
NOTA: si no funciona para usted, haga una copia de seguridad de Db y restaure nuevamente y vuelva a hacer el método anterior
* Individual = SINGLE_USER
Múltiple = MULTI_USER
Restringido = RESTRICTED_USER
fuente
Después de pasar al modo de usuario único, un cliente puede establecer solo UNA conexión con el servidor SQL, recuerde que "Object Explorer" toma una conexión (separada), por lo que si está intentando ejecutar una declaración multiusuario en una consulta ventana, recibirá un error que en el modo de usuario único no puede establecer otra conexión.
Sin embargo, para mí este no era el problema, en mi caso, había pocos procesos automatizados que establecían conexiones de manera persistente (en cada pocos segundos), así que tan pronto como llevé la base de datos al modo de usuario único y me desconecté, uno de los procesos establecieron / ocuparon la conexión (antes de que pudiera comenzar mi operación de Restauración). Tan pronto como matara esas conexiones, se volverían a conectar y cuando ejecutara el comando Restaurar, obtendría el error de que la conexión ya está ocupada.
Para resolver esto, tuve que escribir las
kill
declaraciones, el cambio de lasUser-Mode
declaraciones y lasRestore
operaciones, todo en una ventana de consulta y, cuando los ejecuté de una vez, ¡listo! funcionó.Espero que esto ayude a otros.
fuente
Estaba teniendo problemas con un DB local.
Pude resolver este problema deteniendo el servidor SQL, y luego iniciando el servidor SQL, y luego usando la interfaz de usuario SSMS para cambiar las propiedades de la base de datos a Multi_User.
La base de datos entró en modo "Usuario único" cuando intentaba restaurar una copia de seguridad. No había creado una copia de seguridad de la base de datos de destino antes de intentar restaurar (SQL 2017). esto te atrapará todo el tiempo.
Detenga SQL Server, inicie SQL Server, luego ejecute los scripts anteriores o use la interfaz de usuario.
fuente
Busqué en Google la solución por un tiempo y finalmente encontré la solución a continuación,
SSMS en general usa varias conexiones a la base de datos detrás de escena.
Deberá eliminar estas conexiones antes de cambiar el modo de acceso. (Lo he hecho con EXEC (@kill); en la plantilla de código a continuación).
Luego,
Ejecute el siguiente SQL para configurar la base de datos en modo MULTI_USER.
Para volver al modo de usuario único, puede usar:
Esto debería funcionar. Feliz codificación !!
¡¡Gracias!!
fuente