我有一个包含2个mdf和2个ldf文件的.bak文件(SQL Server 2008)。
当我尝试从中恢复数据库时,它会创建所有这4个文件。
我以前从未见过这个,并且想知道如何进入古老的1文件对系统(1 mdf / 1 ldf)?
对备份中2个文件对的任何见解也会有所帮助。
p.s。:我的设置没有任何Ndf文件,都是Mdf
答案 0 :(得分:2)
听起来你需要将数据从辅助mdf(不是ndf?)移动到第一个。这一切都假设你已经完成了恢复。
假设您的2个文件是m1
和m2
。
使用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命令删除该文件。