为何SQL Server还原数据库BAK文件失败,错误:The system cannot find the path specified.

今天发现一个问题,就是公司开发服务器上的SQL Server,还原一个数据库bak文件老是报错,错误如下:

TITLE: Microsoft SQL Server Management Studio
------------------------------

Restore of database 'Fraud' failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)

------------------------------
ADDITIONAL INFORMATION:

System.Data.SqlClient.SqlError: Directory lookup for the file "C:\Program Files\Microsoft SQL Server\MSSQL12.DA\MSSQL\DATA\Fraud.mdf" failed with the operating system error 3(The system cannot find the path specified.). (Microsoft.SqlServer.SmoExtended)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=14.0.17199.0+((SSMS_Rel).171004-0254)&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

可以看到这个错误是SQL Server在文件夹C:\Program Files\Microsoft SQL Server\MSSQL12.DA\MSSQL\DATA\下无法生成数据库文件Fraud.mdf。

 

后来经过调查发现,原来C:\Program Files\Microsoft SQL Server\MSSQL12.DA\MSSQL\DATA\这个文件夹路径在SQL Server所在服务器上根本不存在。。。

这个错误的原因是,默认情况下使用SQL Server Management Studio(SSMS)来还原数据库时,还原地址是备份数据库前的原始地址,如下所示:

可以看到,数据库Fraud由于备份前是在路径(Original File Name)C:\Program Files\Microsoft SQL Server\MSSQL12.DA\MSSQL\DATA\下的,而这个路径是数据库Fraud备份前所在服务器的地址。但是现在SQL Server Management Studio(SSMS)还原这个数据库时,也将数据库文件Fraud.mdf和日志文件Fraud_log.ldf还原到路径(Restore As)C:\Program Files\Microsoft SQL Server\MSSQL12.DA\MSSQL\DATA\下,那肯定是错误的,因为这个路径是备份前数据库Fraud所在服务器的地址,并不是当前我们还原这个数据库所在服务器的地址。

 

所以我们要在还原时,将上面的复选框Relocate all files to folder勾选上:

这样我们就可以将数据库文件Fraud.mdf和日志文件Fraud_log.ldf还原到我们指定的文件夹路径下,从而避免了SQL Server Management Studio(SSMS)将数据库还原到一个不存在的文件夹路径下,导致报错。

 

转载于:https://www.cnblogs.com/OpenCoder/p/8435890.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值