Sql-Server
更改數據庫被 -2 阻止
我們有一個無法恢復的數據庫,因為任何將其置於單使用者模式(或離線)的更改數據庫都會失敗,因為它被分佈式事務阻止。
sp_lock -2 顯示以下內容:
spid dbid ObjId IndId Type Resource Mode Status -2 7 0 0 DB S GRANT
很明顯,有什麼東西鎖上了它。
exec sp_who2
顯示該數據庫沒有連接。select req_transactionUOW from master..syslockinfo where req_spid = -2
什麼都不返回(但通常的 00000000-0000-0000-0000-000000000000)
在 MSDTC 協調器中,沒有任何交易被標記為“有疑問”。有一個活動事務,但我們不能送出或中止它,因為它不是“有疑問的”。
我們如何強行移除那個鎖?或者我們如何在 MSDTC 中取消該事務
原來這是 sql server 2016 和 java 應用程序中的一個錯誤:
必須打開跟踪標誌才能啟用修復 (3924)
該修復還有一個錯誤,因此請確保將 sql server 更新到最新的 CU
以及該修復的額外修復
升級到 SP2 CU10 並啟用跟踪標誌 (3924) 後,我無法再重現該問題