數據庫的在線備份和還原

一直困擾的數據庫在線還原,終於得到了個好的解決辦法。

之前的想法是,網上普遍再說的,在還原前需要把數據庫所在進程殺死,再進行還原,能通過數據庫語句把所在進程找出來,但是發現在殺死一次後,之後不能再找出,在使用還原語句還原的時候,還發現數據庫被佔用。一直無法得到解決辦法。網上也沒有好的解決辦法。所以一直困擾着。

今天偶然在數據庫書上看到,可以先把數據庫設置爲脫機狀態,讓數據庫處於離線狀態。再來進行數據庫的還原,處於離線,應該就不會再佔有了?爲了保險我現在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();清理連接池即可。

 

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