【发布时间】:2010-03-09 16:32:43
【问题描述】:
我正在尝试使用DBCC SHRINKFILE(db_2.ldf) 缩小我的日志文件,这是日志文件的名称
每次都会出错:
8985,第 16 层,第 1 州,第 1 行 在 sys.database_files 中找不到数据库 db 的文件 'FIelD'。该文件不存在或已被删除。
您能否建议我可以做些什么来解决它。
【问题讨论】:
标签: sql-server transaction-log dbcc
我正在尝试使用DBCC SHRINKFILE(db_2.ldf) 缩小我的日志文件,这是日志文件的名称
每次都会出错:
8985,第 16 层,第 1 州,第 1 行 在 sys.database_files 中找不到数据库 db 的文件 'FIelD'。该文件不存在或已被删除。
您能否建议我可以做些什么来解决它。
【问题讨论】:
标签: sql-server transaction-log dbcc
文件名应该是逻辑文件名而不是物理文件名。在数据库属性中,在文件选项卡上查找您尝试收缩的文件的逻辑名称,然后使用该名称。
【讨论】:
您是否在具有您要缩小的日志的数据库的上下文中运行它?在运行 DBCC 命令之前,请确保您拥有正确的 USE 语句
【讨论】:
这里有同样的问题,解决方案是重命名逻辑文件以匹配数据库名称。下面是一个查询逻辑文件名然后执行文件重命名的示例:
-- 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
两个alter的原因是每个数据库通常有两个文件关联,数据文件和日志文件。
【讨论】:
下面的命令有效。但是我不认为它会减小尺寸。我在运行它之后和之前看到相同的大小。你能告诉我我可能错过了什么吗?
fileid groupid size maxsize growth status perf name filename
2 0 1048 268435456 10 1048642 0 PrimaryLogFileName
谢谢
【讨论】:
来自 SQL 管理工作室 右键单击数据库名称,任务,收缩,数据库 Ctrl+Shift+N(或脚本操作到新的查询窗口)
生成以下内容:
使用 [数据库名称] 去 DBCC SHRINKDATABASE(N'DataBaseName') 去吧
【讨论】: