DBCC shrinkfile出错

时间:2010-03-09 16:32:43

标签: sql-server transaction-log dbcc

我正在尝试使用DBCC SHRINKFILE(db_2.ldf)缩小我的日志文件,这是日志文件的名称

每次都给我错误:

  

8985,Level 16,State 1,Line 1   无法在sys.database_files中找到数据库db的文件'FIelD'。该文件不存在或被删除。

您能否建议我该怎么做才能解决问题。

5 个答案:

答案 0 :(得分:12)

文件名应该是逻辑文件名,而不是物理文件名。查看数据库属性,在“文件”选项卡上查找要缩小的文件的逻辑名称,并使用该名称。

答案 1 :(得分:1)

您是否在包含您尝试缩小的日志的数据库的上下文中运行它?在运行DBCC命令之前,请确保您具有正确的USE语句

答案 2 :(得分:1)

这里有同样的问题,解决方案是重命名逻辑文件以匹配数据库名称。下面是查询逻辑文件名然后执行文件重命名的示例:

-- retrieve the logical files for the current db
SELECT [name] AS logical_file FROM sys.database_files df

-- rename the logical file (to match the database name)
ALTER DATABASE YourDB
MODIFY FILE (NAME = 'LogicalFile1', NEWNAME='NewLogicalFile1')
GO

ALTER DATABASE YourDB
MODIFY FILE (NAME = 'LogicalFile2', NEWNAME='NewLogicalFile2')
GO

两个更改的原因是通常有两个文件与每个数据库,数据文件和日志文件相关联。

答案 3 :(得分:0)

以下命令有效。但是我没有看到它减小尺寸。在运行之前和之后我看到相同的大小。能告诉我可能错过的内容吗?

fileid  groupid size    maxsize     growth  status  perf name filename 
2           0   1048    268435456      10   1048642 0           PrimaryLogFileName

由于

答案 4 :(得分:0)

来自SQL Management Studio 右键单击数据库名称,Tasks,Shrink,Database Ctrl + Shift + N(或脚本操作到新查询窗口)

生成以下内容:

USE [DataBaseName] 走 DBCC SHRINKDATABASE(N'DataBaseName') GO