Previous Article Next Article 還原MSSQL遇到備份組包含現有的xxx資料庫以外的資料庫備份問題
Posted in Database

還原MSSQL遇到備份組包含現有的xxx資料庫以外的資料庫備份問題

還原MSSQL遇到備份組包含現有的xxx資料庫以外的資料庫備份問題 Posted on 2009 年 07 月 11 日3 Comments

如題的還原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 驗證,

然後新增剛輸入的帳號密碼,可成功登入即可。

3 comments

  1. 這個情況可能會 “遇到使用者群組或角色在[資料庫名稱]的目前資料庫中已經存在” 訊息

    就這麼解決

    USE 資料庫名
    GO
    ALTER USER 使用者 WITH LOGIN = 使用者
    GO

    [Reply]

  2. 遇到問題:
    無法獲得獨佔存取權,因為資料庫正在使用中

    解決
    在 restore 前先
    ALTER DATABASE 你的DB名稱 SET OFFLINE WITH ROLLBACK IMMEDIATE

    [Reply]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *