遇到意外的文件ID。文件ID 15是预期的,但是从#34; ..."

时间:2016-06-01 01:16:44

标签: sql-server database

请帮忙!

我重新启动了今天早上运行SQL SERVER 2012的服务器。服务器恢复后,我发现一个用户数据库在"恢复待定" MS SQL Server Management Studio中的状态。

在SQL日志中,我发现错误消息:

错误:5161,严重性:16,状态:1。

遇到意外的文件ID。预期文件ID为15,但是从" \ SQL-Server \ DATA \ 15 Thumbdrive \ DB \ 0014_TSf.ndf"中读取了14。验证文件是否在sys.master_files中正确映射。 ALTER DATABASE可用于更正映射。

错误:5105,严重性:16,状态:1。

发生了文件激活错误。物理文件名' \ SQL-Server \ DATA \ 15 Thumbdrive \ DB \ 0014_TSf.ndf'可能不正确。诊断并更正其他错误,然后重试该操作。

我检查了sys.master_files,得到的结果如下:

database_id  file_id  name        physical_name
5            14       0013_TSf    \\SQL-Server\DATA\Test_\DB\0013_TSf.ndf
5            15       0014_TSf    \\SQL-Server\DATA\15 Thumbdrive\DB\0014_TSf.ndf

从结果中,文件' \ SQL-Server \ DATA \ 15 Thumbdrive \ DB \ 0014_TSf.ndf'确实有一个id 15,而不是错误信息中所述的14。

我尝试从用户数据库中删除此文件但不能,因为它已经在"恢复待定"这意味着数据库根本不在线。

我也尝试更新sys.master_files或sys.sysbrick文件,但它也没有工作,给出了错误,例如"不允许对系统目录进行临时更新"。

任何想法都将受到赞赏!

1 个答案:

答案 0 :(得分:0)

恢复暂挂意味着由于某种原因SQL无法在数据库上运行重启恢复。通常这是因为日志丢失或损坏。

如果文件存在且驱动器在线,则尝试停止并重新启动SQL服务,因为可能是在驱动器可用之前SQL出现了。那会导致这个错误。