我有一个.bak
文件,我使用SQL Server 2008 R2 Express创建。
我尝试将其还原到SQL Server 2012 Express但收到以下错误消息:
Msg 5133,Level 16,State 1,Line 2
文件“C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate.mdf”的目录查找失败,出现操作系统错误3(系统找不到指定的路径。)。Msg 3156,Level 16,State 3,Line 2
文件'RealEstate'无法还原到'C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate.mdf'。使用WITH MOVE标识文件的有效位置。Msg 5133,Level 16,State 1,Line 2
文件“C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate_log.ldf”的目录查找失败,出现操作系统错误3(系统找不到指定的路径。)。Msg 3156,Level 16,State 3,Line 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语句时发现了问题。以前的消息提供了详细信息。Msg 3013,Level 16,State 1,Line 2
RESTORE DATABASE异常终止。
有人可以帮我解决这个问题吗?
供您参考,
.bak
文件是从我上个月去世的旧PC上运行的SQL Server 2008 R2数据库创建的。
我刚刚购买了一台新PC并决定安装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 :(得分:0)
如果您要从SQL 2008迁移到SQL 2012,请尝试这样的操作。
RESTORE DATABASE DBName FROM DISK = 'C:\Path\To\Bak\File' WITH REPLACE;
答案 1 :(得分: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)的名称