數據庫死鎖時緊急處理

SQLSERVER 數據庫死鎖的解決方案!

sp_who

 

kill spid

 

SQLSERVER出現死鎖的一個常見情況是:

 

SQLSERVER2000創建一個數據庫的數據庫文件和日誌文件的增長規則是按10%增長。假設數據庫文件的容量積累到100GB,則下次數據庫擴容時是按10%一次性擴大文件空間,也就是一次性要擴大10GB的空間。一次擴容10GB,將使硬盤嚴重負載,至少需要幾秒鐘的時機,而此時如果客戶端正頻繁訪問數據庫,將無法獲得數據庫響應,提示文件存儲空間不足(此時正在擴容)。此時就是容易產生死鎖的情況了,一旦死鎖,SQLSERVER2000將進入卡死狀態,即使經過幾秒後,文件已經擴容,它還是死的。這種情況在SQLERVER2005有了改進,應該是不會死了。

 

其實這是微軟的SQLSERVER默認設置值造成的,也就是說你安裝SQLSERVER2000後,不修改這個默認值,如果你的系統數據量很大,而且有頻繁操作的時間段,那麼總有一天你的系統會出現這個死鎖的現象,難以避免!幸好在SQLSERVER2005已經修改這個默認設置。

 

SQLSEVER2005也增加了一個內部安全通道,即使數據庫進入卡死狀態,也可以通過這個安全通道進行kill spid操作!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章