2013-11-22 260 views
0

我有使用SQL Server 2008 R2 Express創建的.bak文件。無法將SQL Server 2008 R2 Express備份文件還原到SQL Server 2012 Express

我試圖把它恢復到SQL Server 2012的快,但得到以下錯誤消息:

消息5133,級別16,狀態1,行2
目錄查找的文件「C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate.mdf「操作系統錯誤3(系統找不到指定的路徑)失敗。

消息3156,級別16,狀態3,行2
文件 '房地產' 不能恢復到 'C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate.mdf'。使用WITH MOVE標識文件的有效位置。

消息5133,級別16,狀態1,行2
的文件目錄查找 「C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate_log.ldf」 失敗與操作系統錯誤3(系統找不到指定的路徑)。

消息3156,級別16,狀態3,行2 文件 'RealEstate_log' 不能恢復到 'C:\ Program Files文件\ Microsoft SQL Server的\ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate_log.ldf'。使用WITH MOVE標識文件的有效位置。

Msg 3119,Level 16,State 1,Line 2
規劃RESTORE語句時發現問題。先前的消息提供了細節

消息3013,級別16,狀態1,行2
RESTORE DATABASE正在異常終止。

有人可以幫我解決這個問題嗎?

爲了您的信息,

.bak文件是從我的舊電腦上個月死在運行的SQL Server 2008 R2數據庫中創建。

我剛買了一臺新電腦,決定安裝SQL Server 2012。

我想將此.bak文件恢復到運行在我的新PC上的SQL Server 2012中。

在SQL Server 2008 R2中,數據庫存儲在

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA. 

同時在SQL Server 2012中,數據庫存儲在

C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA. 

我不知道原來的路徑確實存儲在.bak文件。有人知道嗎?

+0

請!格式化你的問題,並使其可讀。 – swiftBoy

+0

**是的 - 當然**這是路! ** READ **錯誤信息(*系統找不到指定的路徑*) - 它清楚地告訴你它正在嘗試將文件從備份存儲到舊的(2008 R2)路徑中,這個路徑在新的路徑上不存在機器了!您需要恢復備份文件,並明確指定**文件應該放到哪裏(到您的**新**目錄) –

回答

0

如果您正在從SQL 2008遷移到SQL 2012,請嘗試類似這樣的操作。

RESTORE DATABASE DBName FROM DISK = 'C:\Path\To\Bak\File' WITH REPLACE; 
+0

剛剛嘗試過,仍然收到相同的錯誤消息。 – hgouw

+0

您是否在2012年的服務器上使用相同的名稱創建了空白數據庫? – Potenza

0
RESTORE DATABASE RealRestate 
    FROM DISK = 'C:\PATH_TO\RealEstate.bak' 
    WITH MOVE '<dataname>' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\RealEstate.mdf', 
     MOVE '<logname>' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\RealEstate_log.ldf', REPLACE 

通知,我已經把在新位置

<dataname><logname>可以

restore filelistonly from disk ='C:\PATH_TO\RealEstate.bak' 

此發現將恢復不算什麼,但告訴你,你的屬性bak文件。在列Logicalname中,您將看到名稱爲<dataname>(其中類型爲D)和<logname>(其中類型爲L)

相關問題