SQL Server:移动文件,无法启动,无法配置

时间:2015-02-10 23:22:06

标签: sql-server

我不得不移动SQL Server 2014数据库的数据文件以腾出空间。

现在服务人员不想再开始了,说:

  

错误:17204,严重性:16,状态:1。
  FCB :: Open失败:无法打开文件编号1的文件\ data \ MSSQL12.DBNAME \ MSSQL \ DATA \ MSDBData.mdf.OS错误:3(系统找不到指定的路径。)。

确实<oldPath>不再存在。该服务无法启动,因此配置位置的常用方法无法正常工作。

有没有办法告诉找到文件的位置?

3 个答案:

答案 0 :(得分:0)

错误消息17204和17207表示在SQL Server尝试在启动过程中打开数据库文件时遇到错误。

这些错误消息包含以下信息: 尝试打开文件的SQL Server函数的名称 状态信息区分可以生成此错误消息的函数内的多个位置 文件的完整物理路径 与文件对应的文件ID 操作系统错误代码和错误说明。在某些情况下,只会提供错误代码。

在这些错误消息中打印的操作系统错误信息是导致这些错误消息的正常原因。这些错误消息的常见原因是权限问题或不正确的位置或路径问题。

我强烈建议您带回硬盘驱动器上以前位置的数据库文件,并使用常见方案移动数据库,如下所示: Moving User Databases

答案 1 :(得分:0)

您可以从命令行手动启动服务并指定文件位置

e.g。 -d master_file_path 是master数据库文件的完全限定路径(通常是C:\ Program Files \ Microsoft SQL Server \ MSSQL.n \ MSSQL \ Data \ master.mdf)。如果您不提供此选项,则使用现有的注册表参数。

然后,一旦服务启动并运行,就使用常用的配置位置的方法。

无法记住StackOverflow是否批准链接,但https://msdn.microsoft.com/en-us/library/ms190737.aspx是详细信息的位置。

答案 2 :(得分:0)

如果您需要空间,请仅移动用户数据文件。 MSDBData.mdf,master.mdf,tempdb.mdf和model.mdf是系统数据库,它们不占用太多空间。他们赢得了很多事件(除了tempdb,可以使用ALTER DATABASE轻松移动)

要纠正这种情况,您需要将文件放回原位(是的全部)然后您可以使用

分离所有数据库
exec sp_detach 'user_bd'

既然你不能这样做,那你至少应该恢复4个系统数据库(MSDBData.mdf,master.mdf,tempdb.mdf和model.mdf)