我有一个SQL Server 2005 sp2框,其中tempdb有8个数据文件或5个数据文件,取决于你所看到的位置。 DBCC showfilestates和sys.database_files(都在tempdb中查询)显示8个数据文件(tempdev - tempdev8),但是当我查询sys.master_files时(在主数据库中,这也是GUI使用的),我只看到5(tempdev, tempdev5 - tempdev8)。我无法添加tempdev2 - tempdev4,因为我收到它已经存在的错误,我无法很快重新启动SQL Server来重新创建tempdb。
任何人都知道: 1.)如何发生这种情况? 2.)更重要的是,我如何纠正它?
谢谢,
答案 0 :(得分:1)
一个视图可能会显示过时的信息。一种情况是,这些文件是从tempdb中删除的,但SQL Server尚未重新启动,以便从某些系统目录中删除这些文件。并且你不能添加新的,直到旧的真的消失。你对tempdb做的任何破坏性行为(移动,删除文件等)通常都需要重新启动SQL Server。
我的猜测是他们正在显示系统的两种不同状态,并将协调实例重新启动。
答案 1 :(得分:0)
我要问的第一个问题是,为什么要搞乱tempdb?您是否因为tempdb而遇到瓶颈?
答案 2 :(得分:0)
如果您查看相应目录中的磁盘,您看到了多少个文件?