• 为何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 FilesMicrosoft SQL ServerMSSQL12.DAMSSQLDATAFraud.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 FilesMicrosoft SQL ServerMSSQL12.DAMSSQLDATA下无法生成数据库文件Fraud.mdf。

    后来经过调查发现,原来C:Program FilesMicrosoft SQL ServerMSSQL12.DAMSSQLDATA这个文件夹路径在SQL Server所在服务器上根本不存在。。。

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

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

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

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

  • 相关阅读:
    OD: Kernel Vulnerabilities
    newInstance()和new的区别
    原型模式
    工厂模式
    代理模式
    策略模式
    简单工厂模式
    C#操作符的重载
    旅行之舌尖上的中国
    模式和原则[转载]
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/8435890.html
Copyright © 2020-2023  润新知