將資料庫備份檔(.bak檔)還原到不同的主機為資料庫檔(.mdf檔)

將伺服器的.bak紀錄檔備份回家後,利用還原機制,還原為.mdf資料庫檔的方法。
實例:

要還原的資料庫叫NPUST.mdf
欲還原的bak檔為NPUST_backup_200812060300.bak

存在C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\NPUST_backup_200812060300.bak

設要建立一個新的資料庫叫NPUST或用從伺服器備份來的NPUST舊檔

要用最新的bak檔去覆蓋。一般我們會直接在 資料庫右鍵>工作>還原>資料庫

然後在來源裝置選擇備份媒體>檔案 然後去瀏覽加入.bak檔

可是使用伺服器的bak檔做還原時會出現

System.Data.SqlClient.SqlError: 備份組包含現有的 'NPUST' 資料庫以外的資料庫備份。 (Microsoft.SqlServer.Express.Smo)


System.Data.SqlClient.SqlError: 資料庫 "NPUST" 的記錄結尾尚未備份。若您不想遺失其中的內容,請使用 BACKUP LOG WITH NORECOVERY 備份記錄。亦可使用 RESTORE 陳述式的 WITH REPLACE 或 WITH STOPAT 子句,覆寫記錄的內容。 (Microsoft.SqlServer.Express.Smo)
的錯誤訊息。

解決方法

鍵入的程式碼

restore DATABASE NPUST

from disk='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\NPUST_backup_200812060300.bak'

with

move 'NPUST' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NPUST.mdf',

move 'NPUST_Log' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NPUST_log.ldf'

,NoRecovery

,Replace

go

※程式碼內的檔名跟路徑換成自己需要的。

有顯示已處理的訊息後

像圖一樣,再做一次正常還原手續...

這樣就可以正確的完成還原手續的。

http://blog.yam.com/iamshiao/article/18601917

沒有留言:

張貼留言