1

我有一个.bak文件(SQL Server 2008),它包含2个mdf和2个ldf文件。如何使用2个mdf和2个ldf文件恢复数据库,只留下1个mdf/ldf对?

当我尝试从中恢复数据库时,它会创建所有这4个文件。

我从来没有见过这个,并想知道如何去古老的1文件对系统(1 mdf/1 ldf)?

任何关于备份中的2个文件对的见解也会有所帮助。

P.S:我的设置没有任何NDF文件,都是中密度纤维板

回答

2

这听起来像你需要将数据从辅助mdf(不是ndf?)移动到第一个。这一切都假定你已经完成了恢复。

假设你的2个文件是m1m2。使用DBCC SHRINKFILE移动并清空你的ndf。

--move all data out of this file 
DBCC SHRINKFILE ('m2', EMPTYFILE) 

您可能必须重新启动SQL Server in single user mode。 (source

--if trying to delete LDF file, do a Transaction log backup of your DB now 

--remove this file from the 
ALTER DATABASE DB_NAME_HERE_NO_QUOTES REMOVE FILE m2 
+0

它不是NDF,这是中密度纤维板... – 2010-12-22 19:54:40

1

使用多个文件在数据库有助于在多个磁盘驱动器分布数据库。

恢复数据库时不能更改文件数量,但可以指示文件的恢复位置。查看RESTORE DATABASE命令,MOVE选项。

数据库还原后,您可以删除数据库文件。您必须将文件缩小至empty file。然后,您可以使用ALTER DATABASE命令删除文件。

相关问题