[英]SQL Server backup restore issues?
好的,所以我遇到了一些問題 - 我在SQL Server上執行了一些代碼,並沒有意識到我沒有選擇WHERE位。 當然,當我看到"608 rows affected"
而非"1 row affected"
,我嚇壞了一下。
幸運的是,我保存了備份,但出於某種原因,我遇到了一些問題。 現在,我把服務器關閉了,所以我知道它沒有被任何人使用,但它給了我以下錯誤
“服務器'myserver'恢復失敗。
System.Data.sqlclient.sqlerror:無法獲取獨占訪問權限,因為數據庫正在使用中。 (Microsoft.SqlServer.Smo)”
我看到了我應該使用的東西
Alter Database Databases
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
RESTORE DATABASE PRODUCT
FROM DISK = ''
但我對這段代碼有三個保留意見。 首先,我完全不確定如何重新打開multi_user。 其次,我不知道程序存儲備份的位置。 第三,這個SQL有點高於我的頭 - 老實說,我對這門語言比較新,所以我不確定這會對事情產生什么影響。
有人對我的煩惱有任何答案嗎?
我可能會建議您不要從備份中覆蓋現有數據庫,而是使用不同的數據庫名稱來恢復備份...這樣您就可以並排使用當前和以前的數據庫。
然后,您只需編寫一個更新語句即可從該特定表中恢復數據,而不是重置整個數據庫。
編輯:細節取決於您的環境,但恢復將看起來像這樣:
restore database PRODUCT_OLD
from disk='C:\PRODUCT.bak'
with
move 'PRODUCT_Data' to 'C:\PRODUCT_OLD_Data.MDF',
move 'PRODUCT_Log' to 'C:\PRODUCT_OLD_Log.LDF'
然后更新聲明也將基於您的特定表...
在數據庫上點擊任務 - > takeoffline ,當它成功做同樣的事情,但把它Bring Online然后嘗試恢復你的數據庫
將數據庫設置為單個用戶是正確的。 當您完成修復后,您將執行此操作
alter database YourDb
set multi_user
至於.bak文件所在的位置,您必須在恢復之前找到它。
害怕。
好的,有些事要檢查:
那么你應該能夠用單個用戶的東西進行恢復。
轉到活動監視器,查看用戶是否仍然登錄,然后使用相應的數據庫終止該用戶的進程。 然后繼續恢復備份
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.