Archivo
Archivo
-
-
-
- SQL Server base de datos tempdb
- SQL Server alineación de discos
- SQL Server: acceso exclusivo a la base de datos
- SQL Server: listados de bases de datos y tablas
- SQL Server: reorganizar y volver a generar índices
- Algunos cambios en PHP a partir de la 5.3
- Desventajas de minimizar código JavaScript con Minify
- Preparar y ejecutar consultas con SQL Server drive...
-
-
-
-
-
-
-
-
-
Etiquetas
Etiquetas
Entradas populares de este blog
Hacer un select readonly con jQuery
Listado de palabras en castellano
SQL Server: acceso exclusivo a la base de datos
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Muchas de las operaciones que se realizan sobre las bases de datos de SQL Server requieren el uso exclusivo de esta base de datos por parte del usuario que está ejecutando el proceso o la tarea, una de ella puede ser la restauración de la misma desde un backup. Por ser un requerimiento común es muy normal recibir este mensaje de error:
Exclusive access could not be obtained because the database is in use
Corregirlo no suele ser muy sencillo, más bien todo lo contrario y depende de los accesos que tenga esa base de datos, aquí os dejaré algunos pasos para identificar e intentar garantizar ese acceso exclusivo.
Lo primero que debemos hacer es terminar todas las conexiones existentes a la base de datos y ello lo haremos con la siguiente instrucción:
USE database
GO
ALTER DATABASE database SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE database SET MULTI_USER
GO
También podemos ejecutar esta opción utilizando el procedimiento almacenado sp_dboption:
Use master
go
sp_dboption database, single, true
sp_dboption database, single, false
Como vemos esta instrucción pone a la base de datos en modo usuario único terminando todas las transacciones de manera automática y luego la restaura a su estado original sin ninguna transacción abierta en ella.
El problema vienen cuando tenemos tareas o programas que iteran con la base de datos constantemente los cuales aunque se terminan con la consulta anterior una vez la base de datos vuelve a su estado de multi usuario vuelven a acceder. Para identificar y cerrar o detener estas tareas o programas lo que debemos de utilizar es el Monitor de Actividad de SQL Server.
Una vez identificados debemos cerrar estas aplicaciones y de esa manera evitaremos este molesto error (exclusive access could not be obtained because the database is in use) para poder realizar nuestras tareas con normalidad.
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Comentarios
¡Con la explicación sí!
Saludos