2016-05-03 85 views
0
  1. 我得到一個錯誤「鎖請求超時超標」時收縮日誌文件和備份數據庫SQL Server 2012的錯誤 - 鎖請求超時超過

  2. 我知道,當這個錯誤會來。某些事務應該鎖定表。

    但我需要知道如何找到它?

感謝

+0

快速回答是使用'sp_lock'或它的基礎,系統表'master.dbo.syslockinfo'。實際上從他們那裏疏導有用的信息可能會很棘手,希望有人能發表更詳細的答案。 –

回答

1

你可以使用動態管理視圖,找出目前持有哪些鎖以及由誰。

SELECT L.resource_type, L.request_mode, L.request_type, L.request_status, L.request_session_id, S.[host_name], S.[program_name], s.login_name 
    FROM sys.dm_tran_locks AS L 
     INNER JOIN sys.dm_exec_sessions AS S 
      ON S.session_id = L.request_session_id 
    WHERE resource_database_id = DB_ID(N'msdb'); 

enter image description here

請參閱聯機叢書> sys.dm_tran_locks(的Transact-SQL):https://msdn.microsoft.com/en-us/library/ms190345.aspx

聯機叢書> sys.dm_exec_sessions(的Transact-SQL):https://msdn.microsoft.com/en-gb/library/ms176013.aspx

1

我當收縮日誌文件和備份時出現錯誤「鎖定請求超時超時」 數據庫

我是這是錯誤的,你得到它的日誌文件收縮,而不是備份。日誌文件的縮小並不是你應該做的事情。不作爲定期維護的一部分。

在SQL Server中定期收縮任何東西都是規劃不當或管理員無能的表現。預先分配合理的數額,與他們一起生活。特別是對於日誌文件,應該計劃增長具有明智的虛擬日誌文件大小。

https://technet.microsoft.com/en-us/magazine/2008.08.database.aspx

解釋其背後的邏輯。

所以,你的問題是吠叫錯誤的樹。