Mar*_*lli 5 sql-server locking system-databases sql-server-2016
尝试运行以下查询以创建新数据库时:
CREATE DATABASE [Lunch]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'Lunch',
FILENAME = N'E:\Data Files\Lunch.mdf' ,
SIZE = 110592KB , FILEGROWTH = 1048576KB ),
FILEGROUP [DATA]
( NAME = N'Lunch_Data',
FILENAME = N'E:\Data Files\Lunch_Data.ndf' ,
SIZE = 110592KB , FILEGROWTH = 1048576KB ),
FILEGROUP [NONCLUSTERED_INDEXES]
( NAME = N'Lunch_nonclusteredindexes',
FILENAME = N'E:\Data Files\Lunch_nonclusteredindexes.ndf' ,
SIZE = 110592KB , FILEGROWTH = 1048576KB )
LOG ON
( NAME = N'Lunch_log',
FILENAME = N'F:\logFiles\Lunch_log.ldf' ,
SIZE = 524288KB ,
FILEGROWTH = 524288KB )
GO
Run Code Online (Sandbox Code Playgroud)
收到以下错误消息:
消息 1807,级别 16,状态 3,第 1 行
无法获得数据库 'model' 的排他锁。
稍后重试该操作。
消息 1802,级别 16,状态 4,第 1 行
创建数据库失败。
无法创建列出的某些文件名。检查相关错误。
什么在使用模型数据库并且不允许我获得排他锁?
您的model
数据库现在已锁定,因此您应该做的是找出锁定它的会话,这可以使用sys.dm_tran_locks
:
select request_session_id
from sys.dm_tran_locks
where resource_type = 'database' and
resource_database_id = 3 and
request_type = 'LOCK' and
request_status = 'GRANT';
Run Code Online (Sandbox Code Playgroud)
您可以让一个用户刚刚打开一个带有model
数据库上下文的 SSMS 查询窗口并且从未在那里执行任何查询,但该会话仍然S
锁定数据库资源。
找到锁定会话后,只需将其终止即可。
归档时间: |
|
查看次数: |
9199 次 |
最近记录: |