DBAtlas · 数据库运维图谱

5061: ALTER DATABASE failed because a lock could not be placed on database(ALTER DATABASE 失败,因为无法在数据库上加锁)

SQL Server

含义

ALTER DATABASE 操作(例如切换到单用户模式、更改文件、设置选项)无法在数据库上获取所需的锁,因为其他活动连接/会话正在使用该数据库。

原因

在数据库正在使用时尝试了该操作;由于存在活动用户连接,无法获取 SET SINGLE_USER、RESTRICTED_USER 或类似选项更改所需的排他锁。在应用连接处于打开状态时频繁部署/维护时很常见。

解决方法

找出连接到该数据库的其他会话(sys.dm_exec_sessions、sp_who2)并安全地关闭它们。进行维护时,使用 ROLLBACK 选项在回滚未结事务的同时更改模式:ALTER DATABASE [db] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 在应用流量较低时或维护窗口内执行操作。完成后记得切换回 MULTI_USER。

在 DBAtlas 中打开 →

同一数据库的其他条目