4

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

每次都给我错误:

8985,级别 16,状态 1,第 1 行在 sys.database_files 中找不到数据库 db 的文件 'FIelD'。该文件不存在或已被删除。

您能否建议我可以做些什么来解决它。

4

5 回答 5

12

文件名应该是逻辑文件名而不是物理文件名。在数据库属性中,在文件选项卡上查找您尝试收缩的文件的逻辑名称,然后使用该名称。

于 2010-03-09T16:48:07.963 回答
1

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

于 2010-03-09T16:35:58.423 回答
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

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

于 2011-06-06T18:03:00.517 回答
0

下面的命令有效。但是我不认为它会减小尺寸。我在运行它之后和之前看到相同的大小。你能告诉我我可能错过了什么吗?

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

谢谢

于 2010-03-09T17:40:57.750 回答
0

从 SQL Management Studio 右键单击​​数据库名称、任务、收缩、数据库 Ctrl+Shift+N(或脚本操作到新查询窗口)

生成以下内容:

使用 [DataBaseName] GO DBCC SHRINKDATABASE(N'DataBaseName' ) GO

于 2014-02-10T19:41:32.567 回答