Normalmente las Bases de Datos de SQL Server son de acceso múltiple, es decir que puede
acceder a ellas muchos usuarios.
Pero puede darse el caso de que queramos que sólo acceda a ella un usuario o también que
nos envíen una base de datos para restaurar y al hacerlo esté en usuario único
(single user) y queramos ponerla para
múltiples usuarios.
Si el icono de la base
de datos aparece con un dibujo de un usuario al lado (como en la figura de
abajo) es porque está en usuario único, además lo indicará con un paréntesis
donde pone Usuario único.
Si intentamos abrirla
sólo podremos hacerlo en una instancia, si intentamos abrir una segunda
instancia u otro usuario al mismo tiempo, saldrá un mensaje de error.
Con el mensaje “Database
‘nombre_BBDD’ is already open and can only have one user a time’ – La base de
datos ya está abierta y sólo puede ser utilizada por un usuario a la vez.
Si abrimos el monitor de
actividad (en azul en la primera figura) haciendo doble click sobre él podemos
ver si ya existe una instancia de la base de datos abierta.
Si la base de datos está
disponible para un solo usuario y necesitamos ponerla en usuario múltiple y no
nos deja por que ya tiene abierta una instancia, tendremos que abrir el monitor
de actividad y posicionarnos sobre la línea de la instancia de la bases de
datos y pulsar el botón derecho del ratón y eliminar proceso.
Hecho esto para ponerla
en usuarios múltiples hay que colocarse cobre el icono de la base de datos y
con botón derecho del ratón, elegimos propiedades
Donde nos saldrá un
cuadro de diálogo de varias pestañas a la izquierda en la que elegiremos la
pestaña de opciones
Y después buscamos a la derecha
la opción restringir acceso y desplegando la flecha de la derecha podremos
elegir múltiple o single entre otras opciones.
Elegida la opción
pulsamos aceptar y ya tenemos la base de datos en el modo elegido.
Si queremos hacerlo por
comandos podemos hacerlo ejecutando en el analizador de consultas las
siguientes instrucciones:
ALTER DATABASE Nombre_Base_Datos
SET
SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE Nombre_Base_Datos
SET MULTI_USER;
GO
WITH ROLLBACK
IMMEDIATE hará
que todas las transacciones que estén sin terminar se reviertan y que el resto
de las conexiones a la base de datos Nombre_Base_Datos se desconecten inmediatamente.
Poner la base de datos Offline/Online
Otra posibilidad es que deseemos poner offline u online la base de datos. Para ponerla offline podemos ejecutar el procedimiento almacenado del sistema:
exec sp_dboption 'dbNombreBasedeDatos', 'offline', 'true'
En este caso particular nuestra Base de Datos se llama dbGDI_PER_REAL
exec sp_dboption 'dbGDI_PER_REAL', 'offline', 'true'
Esto dejará fuera de línea la base de datos y en el explorador de objetos de SQL Server se mostrará con una marca roja.
Con la siguiente instrucción revertimos el proceso y ponemos online de nuevo la Base de datos
exec sp_dboption 'dbGDI_PER_REAL', 'offline', 'false'
con lo que se mostrará de nuevo en el explorador de objetos con su icono habitual.
exec sp_dboption 'dbNombreBasedeDatos', 'offline', 'true'
En este caso particular nuestra Base de Datos se llama dbGDI_PER_REAL
exec sp_dboption 'dbGDI_PER_REAL', 'offline', 'true'
Esto dejará fuera de línea la base de datos y en el explorador de objetos de SQL Server se mostrará con una marca roja.
Con la siguiente instrucción revertimos el proceso y ponemos online de nuevo la Base de datos
exec sp_dboption 'dbGDI_PER_REAL', 'offline', 'false'
con lo que se mostrará de nuevo en el explorador de objetos con su icono habitual.
Más información en: Ayuda de microsoft.
No hay comentarios:
Publicar un comentario