2009年10月1日 星期四

將SQL Server的bak備份擋還原到另一台SQL Server中

假設serverA備份了一個資料庫擋案my.bak,若要將此my.bak由另外一台serverB還原,會發生
如下的錯誤訊息:
System.Data.SqlClient.SqlError: 備份組包含現有的 'XXXX' 資料庫以外的資料庫備份。 (Microsoft.SqlServer.Express.Smo)
可以透過下面指令解決
步驟一:
restore DATABASE Test01 --假設要還原到serverB的Test01資料庫中(Test01資料庫已存在serverB上)
from disk='C:\my.bak' --指定備份檔案路徑
with
move 'Test01' to 'C:\Program Files\Microsoft SQL Server\myData\2005\Test01.mdf',
move 'Test01_Log' to 'C:\Program Files\Microsoft SQL Server\myData\2005\Test01_Log.ldf'
,NoRecovery
,Replace
go

執行後,出現下面訊息表示順利完成第一步驟
已處理資料庫 'Test01' 的 1000 頁,檔案 1 上的檔案 'my'。
已處理資料庫 'Test01' 的 2 頁,檔案 1 上的檔案 'my_log'。
RESTORE DATABASE 已於 0.757 秒內成功處理了 1002 頁 (10.833 MB/sec)。

步驟二:
再次使用傳統的還原步驟即可。



沒有留言:

張貼留言