2013-11-22 118 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)

相关问题