iT邦幫忙

0

SQL 2005 資料庫復原問題

請教告位大大,我的SQL BAK檔有許多不同資料庫
請問要怎樣一個一個復原?
我怎樣復原都只能復原第一個資料庫
其餘的資料庫進行復原時都會出現下列錯誤

請各位大大指點一下

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

8
Ray
iT邦大神 1 級 ‧ 2010-07-28 22:44:14
最佳解答

您很可能是遇到某個 SQL 2005 的 Bug, 類似的狀況可以在此查詢:
https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=124718&wa=wsignin1.0

如果當初備份時, 是將多個 database 寫入同一個備份檔裡面的話, 就有可能遇到這個 Bug, 大部分都是在備份或還原時透過 SQL Management Studio 去操作所造成的.您可以先試著安裝最新版的 Service Pack 看看, 或者改用 T-SQL 來操作試試看:

<pre class="c" name="code">RESTORE FILELISTONLY
FROM DISK = 'D:BackUpYourBaackUpFile.bak'
GO

請把上面的 D:BackUpYourBaackUpFile.bak 換成您的備份檔. 這個指令會列出一份清單, 包含這個備份檔裡面所有的 Database. 請找出您要還原的那個 Database 對照出最前面的 LogicalName, 把它記下來:

<pre class="c" name="code">----Make Database to single user Mode
ALTER DATABASE YourDB
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE

----Restore Database
RESTORE DATABASE YourDB
FROM DISK = 'D:BackUpYourBaackUpFile.bak'
WITH MOVE 'YourMDFLogicalName' TO 'D:DataYourMDFFile.mdf',
MOVE 'YourLDFLogicalName' TO 'D:DataYourLDFFile.ldf'

請把上面的替換成:
YourDB: 你的 Database 名稱
D:BackUpYourBaackUpFile.bak: 你的備份檔
YourMDFLogicalName: 你剛剛查出來的 LogicalName
D:DataYourMDFFile.mdf: 你要復原的 Database mdf 檔案
D:DataYourLDFFile.ldf: 你要復原的 Database ldf 檔案

還原完畢之後, 請切回 Multi User mode:

<pre class="c" name="code">ALTER DATABASE YourDB SET MULTI_USER
GO

但我自己沒遇過這種狀況, 也沒有實際演練過, 不敢保證一定可以成功....

我要發表回答

立即登入回答