Sql-Server

SQL Server 鏡像數據庫卡在恢復模式

  • April 25, 2018

我有一個數據庫已經卡在恢復模式幾天了。關於這個有多個執行緒,但那裡的解決方案對我不起作用。

這是我已經嘗試過的:

RESTORE DATABASE [DBNAME] WITH RECOVERY 
Error: Exclusive access could not be obtained because the database is in use.

ALTER DATABASE [DBNAME] SET OFFLINE WITH ROLLBACK IMMEDIATE
Error: ALTER DATABASE failed because a lock could not be placed on database 'DBNAME'  
I get the same error when trying to set the db to SINGLE_USER

exec sp_who2 --> nothing that contains my database, so nothing that I can kill  
(Or I need to look for something else ??)

我不能只停止 SQL 服務,因為它包含太多無法關閉的數據庫。

誰知道我可以做些什麼來讓數據庫退出恢復模式?在主位置和鏡像位置都是數據庫狀態“恢復中”。

更新 sp_who2我在with command中找到了一個程序DB STARTUP

sys.dm_tran_locks,我看到這個會話有一個resource_database_id正在恢復的數據庫,所以這使數據庫保持鎖定狀態。任何人都知道如何在不停止 SQL Server 的情況下解決此問題?

重啟db鏡像端點:

--To stop 
ALTER ENDPOINT<Endpoint Name> STATE=STOPPED

--To start
ALTER ENDPOINT<Endpoint Name> STATE=STARTED

技術說明:如果有多個數據庫,而不僅僅是一個出錯的數據庫,那麼停止和啟動端點會影響該端點上的所有數據庫。這可能會導致 SharePoint 等生產系統出現問題。要修復,請轉到其他鏡像數據庫伺服器並輸入相同的命令:ALTER ENDPOINT STATE=STOPPED ALTER ENDPOINT STATE=STARTED

如何找到端點的名稱?select * from sys.endpoints <- 適用於 SQL 2012 鏡像的名稱將是“type=4”。

我這樣做並等待。

ALTER DATABASE &lt;datbasename&gt;  SET PARTNER OFF;

它確實有效,我可以執行:

RESTORE DATABASE  &lt;datbasename&gt;  WITH RECOVERY;

引用自:https://dba.stackexchange.com/questions/57944