代码之家  ›  专栏  ›  技术社区  ›  Anton Gogolev

删除(合并)SQL Server的数据库辅助数据文件

  •  13
  • Anton Gogolev  · 技术社区  · 15 年前

    我有一个数据库备份,SQL Server Management Studio说其中有三个文件:一个 .mdf 文件,一个 .ndf 文件和一个 .ldf 文件。此辅助数据文件 NDF 一)是由于没有明显的原因创建的,所以我希望完全删除它(当然不会丢失数据),最好是在从备份中还原数据库的过程中。

    这是可行的吗?

    2 回复  |  直到 9 年前
        1
  •  14
  •   Johannes Rudolph    11 年前

    好的,找到一个解决方案。

    首先备份数据库。

    执行此操作:

    USE database_name;
    

    然后执行此操作,并替换 logical_ndf_file_name 使用NDF文件的逻辑名称(您可以通过数据库->属性_文件轻松找到该文件):

    DBCC SHRINKFILE('logical_ndf_file_name', EMPTYFILE);
    ALTER DATABASE database_name REMOVE FILE logical_ndf_file_name;
    
        2
  •  0
  •   user3164106    9 年前

    在生产负荷期间,我成功地进行了空投,随后进行了NDF下降。我认为在与空文件相同的事务中运行drop ndf非常重要,以确保数据库不会尝试写入要删除的文件,但是在清空之后,数据库会将文件标记为不可用,这可以通过在之后尝试另一个空的short来证明。