DBAtlas · Atlas de operaciones de bases de datos

5061: ALTER DATABASE failed because a lock could not be placed on database

SQL Server

¿Qué significa?

Una operación ALTER DATABASE (p. ej., pasar a modo de usuario único, cambiar un archivo, establecer una opción) no pudo obtener el bloqueo necesario sobre la base de datos porque otras conexiones/sesiones activas la están usando.

¿Por qué ocurre?

Se intentó la operación mientras la base de datos estaba en uso; el bloqueo exclusivo necesario para SET SINGLE_USER, RESTRICTED_USER o cambios de opciones similares no pudo obtenerse por las conexiones de usuario activas. Habitual durante despliegues/mantenimientos frecuentes con conexiones de la aplicación abiertas.

Cómo solucionarlo

Identifique las demás sesiones conectadas a la base de datos (sys.dm_exec_sessions, sp_who2) y ciérrelas de forma segura. Para el mantenimiento, cambie el modo revirtiendo las transacciones abiertas con la opción ROLLBACK: ALTER DATABASE [db] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; Realice la operación con poco tráfico de la aplicación o en una ventana de mantenimiento. Recuerde volver a MULTI_USER al terminar.

Abrir en DBAtlas →

Más entradas de este motor