Sql server 2008 删除(合并)SQL Server';数据库辅助数据文件

Sql server 2008 删除(合并)SQL Server';数据库辅助数据文件,sql-server-2008,database-restore,data-files,Sql Server 2008,Database Restore,Data Files,我有一个数据库备份,SQL Server Management Studio说它有三个文件:一个.mdf文件、一个.ndf文件和一个.ldf文件。这个辅助数据文件(.ndfone)的创建没有明显的原因,因此我希望将其完全删除(当然不会丢失数据),最好是在从备份中恢复数据库的过程中 这完全可行吗?好的,找到了解决方案 首先备份数据库 执行以下命令: USE database_name; 然后执行此操作,并用ndf文件的逻辑名称替换logical\u ndf\u file\u name(您可以通过

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

这完全可行吗?

好的,找到了解决方案

首先备份数据库

执行以下命令:

USE database_name;
然后执行此操作,并用ndf文件的逻辑名称替换
logical\u ndf\u file\u name
(您可以通过数据库->属性\u文件轻松找到):


在产品加载期间,我成功地运行了空的ndf drop。我认为在同一事务中运行drop ndf和empty是很重要的,以确保数据库不会尝试写入您正在删除的文件,但在一个空的ndf之后,数据库会标记文件不可用,这可以通过尝试另一个空的shorty after来证明。

ndf的目的是分发文件IO。如果您的live server具有NDF,请不要修改模式。为什么NDF会困扰你?@Hassan创建NDF只是为了克服NTFS卷碎片,它的存在没有其他原因。虽然我同意NDF是好的,但不小心创建的NDF是坏的。您的文件中有数据吗?如果是这样的话,需要多长时间,DB是否可用?@Hassan NDF约为8GB,而MDF约为60GB。总共花了大约20分钟。不知道你说的“活着”是什么意思。我没有让它离线,但也没有对它运行任何查询。有趣的信息。“Live”我指的是生产使用或面向客户。@Hassan我怀疑它是否可用于生产使用。要在此处添加一些说明,上面代码行中的“ndf_file_name”指的是逻辑文件名,而不是物理文件名。我当时并不清楚这一点。
DBCC SHRINKFILE('logical_ndf_file_name', EMPTYFILE);
ALTER DATABASE database_name REMOVE FILE logical_ndf_file_name;