今天部署一個asp老項目,在用MSSQL數據庫備份文件還原數據庫時,發生了問題。
提示:sql2008備份集中的數據庫備份與現有的xxx數據庫不同
。
百度找到了這篇文章:sql2008備份集中的數據庫備份與現有的xxx數據庫不同解決方法
但我和他重現問題的步驟不一樣,他是以文件和文件組
的方式還原出現了問題,而我是以數據庫
的方式還原出現了問題。
換句話說,他的解決方案里的步驟就是我出錯的步驟,如圖:
最后,我嘗試用他文章里提到的,但他卻沒有試過的方法,以SQL命令
的方式還原數據庫。
RESTORE DATABASE test -- xxxx-改為你自己的數據名稱
FROM DISK = 'E:\test\data\xxx.bak' --bak文件路徑 xxxx-改為你自己的數據名稱
with replace,
MOVE 'xxx' TO 'E:\test\data\test.mdf', --mdf文件路徑--xxxx-改為你自己的數據名稱
MOVE 'xxx_log' TO 'E:\test\data\test_log.ldf' --ldf文件路徑xxxx-改為你自己的數據名稱
執行時報錯,提示邏輯文件xxx不是數據庫xxx的一部分,請使用RESTORE FILELISTONLY 來列出邏輯文件名
。
根據提示,執行如下代碼。
RESTORE FILELISTONLY
FROM DISK = 'E:\data\xxx.bak'
看到執行結果中的邏輯名后,剛才的代碼改成:
RESTORE DATABASE test -- xxxx-改為你自己的數據名稱
FROM DISK = 'E:\test\data\xxx.bak' --bak文件路徑 xxxx-改為你自己的數據名稱
with replace,
MOVE 'ceshi' TO 'E:\test\data\test.mdf', --mdf文件路徑--xxxx-改為你自己的數據名稱
MOVE 'ceshi_log' TO 'E:\test\data\test_log.ldf' --ldf文件路徑xxxx-改為你自己的數據名稱
再次執行,成功還原數據庫。