如題的還原MSSQL資料庫遇到備份組包含現有的xxx資料庫以外的資料庫備份問題
A主機(MSSQL不明)上有xxx 資料庫,B 主機(MSSQL2005)上也有 xxx 資料庫,
今天我要把 A 主機還原至 B 主機的 xxx 資料庫,
我拿到 A 主機Dump 出來的xxx.bak資料庫檔案,
執行 restore database apatw from disk = ‘i:\xxx.bak’ 出現了
“備份組包含現有的xxx資料庫以外的資料庫備份問題”
等錯誤訊息,
我猜想是兩邊放置MDF路徑不同,所以我
restore database xxx from disk = 'i:\xxx.bak' with move ''xxx to 'E:\Microsoft SQL Server\MSSQL.1MSSQL\Data\xxx.mdf', move 'xxx_log' to 'E:\Microsoft SQL Server\MSSQL.1MSSQL\Data\xxx_log.LDF'
但也是不行,同樣錯誤訊息,原因也不用多談了,先解決問題吧
作法:
打開 MSSQL 的管理介面,到系統資料庫的master按右鍵→新增查詢→貼上下列指令
restore database xxx from disk = 'i:\xxx.bak' with move 'xxx' to 'E:\Microsoft SQL Server\MSSQL.1MSSQL\Data\xxx.mdf', move 'xxx_log' to 'E:\Microsoft SQL Server\MSSQL.1MSSQL\Data\xxx_log.LDF', NoRecovery, Replace go
貼完後按執行
成功就會出現
... ... restore database 已於 幾秒內成功處理了 多少頁 (2.123 MB/sec)。
再到xxx 這個資料庫按右鍵→工作→還原→資料庫→來源裝置→瀏覽 xxx.bak檔→勾選還原→確定
搞定成功 YA!!!
參考http://blog.yam.com/iamshiao/article/18601917
PS: 後續呢,要檢查一下使用者對不對,有時後,來源主機跟目的主機使用的帳號可能不一樣,到資料庫的安全性→使用者,去查看新增。
如果要驗證帳號密碼對不對,重新開啟 Microsoft SQL Server Management Studio,在驗證的地方選擇SQL Server 驗證,
然後新增剛輸入的帳號密碼,可成功登入即可。
留言
專業
這個情況可能會 “遇到使用者群組或角色在[資料庫名稱]的目前資料庫中已經存在” 訊息 就這麼解決 USE 資料庫名 GO ALTER USER 使用者 WITH LOGIN = 使用者 GO
遇到問題: 無法獲得獨佔存取權,因為資料庫正在使用中 解決 在 restore 前先 ALTER DATABASE 你的DB名稱 SET OFFLINE WITH ROLLBACK IMMEDIATE