Sql-Server
SQL Server 鏡像數據庫卡在恢復模式
我有一個數據庫已經卡在恢復模式幾天了。關於這個有多個執行緒,但那裡的解決方案對我不起作用。
這是我已經嘗試過的:
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 <datbasename> SET PARTNER OFF;
它確實有效,我可以執行:
RESTORE DATABASE <datbasename> WITH RECOVERY;