一直困擾的數據庫在線還原,終於得到了個好的解決辦法。
之前的想法是,網上普遍再說的,在還原前需要把數據庫所在進程殺死,再進行還原,能通過數據庫語句把所在進程找出來,但是發現在殺死一次後,之後不能再找出,在使用還原語句還原的時候,還發現數據庫被佔用。一直無法得到解決辦法。網上也沒有好的解決辦法。所以一直困擾着。
今天偶然在數據庫書上看到,可以先把數據庫設置爲脫機狀態,讓數據庫處於離線狀態。再來進行數據庫的還原,處於離線,應該就不會再佔有了?爲了保險我現在SQL上實施了,發現是可行的。
之後便用於數據庫的還原上:
首先先執行離線語句:
Alter Database DBNAME Set Offline with Rollback immediate"
之後執行數據庫還原語句:
RESTORE DATABASE DBNAME FROM DISK =" + "'" + path + "'" + "WITH REPLACE
最後在執行數據庫在線語句:
ALTER DATABASE DBNAME SET ONLINE WITH ROLLBACK IMMEDIATE;
怎麼樣 ,數據庫還原了把?
注意別忘了備份原來的數據庫哦,不然就沒了。
在向服務器發送請求時發生傳輸級錯誤。 (provider: 共享內存提供程序, error: 1 - 執行讀/寫操作期間檢測到 I/O 錯誤
出現該錯誤的時候,只要使用SqlConnection.ClearAllPools();清理連接池即可。