【问题标题】:DBCC shrinkfile gives errorDBCC 收缩文件给出错误
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢,是的,我正在使用正在缩小的数据库。
      【解决方案3】:

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

      -- 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的原因是每个数据库通常有两个文件关联,数据文件和日志文件。

      【讨论】:

        【解决方案4】:

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

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

        谢谢

        【讨论】:

          【解决方案5】:

          来自 SQL 管理工作室 右键单击数据库名称,任务,收缩,数据库 Ctrl+Shift+N(或脚本操作到新的查询窗口)

          生成以下内容:

          使用 [数据库名称] 去 DBCC SHRINKDATABASE(N'DataBaseName') 去吧

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-31
            相关资源
            最近更新 更多