文章出處

今天部署一個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-改為你自己的數據名稱

再次執行,成功還原數據庫。

PS:在空數據庫上還原MSSQL數據庫備份文件時,要注意該備份文件當時的備份方式是否以完整備份的方式進行備份,而不是所謂的差異備份。如果是差異備份,會造成還原失敗

參考:https://www.cnblogs.com/rousi/p/5880751.html


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


文章標籤
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣(2)