如何使用2 mdf和2 ldf文件恢复数据库,只留下1 mdf / ldf对?

时间:2010-12-22 19:25:58

标签: sql-server-2008 database-backups database-restore logfiles

我有一个包含2个mdf和2个ldf文件的.bak文件(SQL Server 2008)。

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

我以前从未见过这个,并且想知道如何进入古老的1文件对系统(1 mdf / 1 ldf)?

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

p.s。:我的设置没有任何Ndf文件,都是Mdf

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

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

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