Sql-Server
無法獲得數據庫“模型”的排他鎖 - 誰在使用它?
嘗試執行以下查詢以創建新數據庫時:
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
收到以下錯誤消息:
消息 1807,第 16 層,狀態 3,第 1 行
無法獲得數據庫“模型”的排他鎖。
稍後重試該操作。
消息 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';
您可以讓一個使用者剛剛打開一個帶有
model
數據庫上下文的 SSMS 查詢視窗,並且從未在那裡執行任何查詢,但該會話仍然S
鎖定數據庫資源。找到鎖定會話後,只需將其殺死。