请帮忙!
我重新启动了今天早上运行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文件,但它也没有工作,给出了错误,例如"不允许对系统目录进行临时更新"。
任何想法都将受到赞赏!
答案 0 :(得分:0)
恢复暂挂意味着由于某种原因SQL无法在数据库上运行重启恢复。通常这是因为日志丢失或损坏。
如果文件存在且驱动器在线,则尝试停止并重新启动SQL服务,因为可能是在驱动器可用之前SQL出现了。那会导致这个错误。