我有一个 .bak 文件(SQL Server 2008),其中包含 2 个 mdf 和 2 个 ldf 文件。
当我尝试从中恢复数据库时,它会创建所有 4 个文件。
我以前从未见过这种情况,想知道如何使用旧的 1 文件对系统(1 mdf/1 ldf)?
对备份中的 2 个文件对的任何见解也将有所帮助。
ps:我的设置没有任何Ndf文件,都是Mdf
我有一个 .bak 文件(SQL Server 2008),其中包含 2 个 mdf 和 2 个 ldf 文件。
当我尝试从中恢复数据库时,它会创建所有 4 个文件。
我以前从未见过这种情况,想知道如何使用旧的 1 文件对系统(1 mdf/1 ldf)?
对备份中的 2 个文件对的任何见解也将有所帮助。
ps:我的设置没有任何Ndf文件,都是Mdf
听起来您需要将数据从辅助 mdf(不是 ndf 吗?)移动到第一个。这一切都假设您已经完成了恢复。
假设您的 2 个文件是m1
和m2
.
用于DBCC SHRINKFILE
移动和清空您的 ndf。
--move all data out of this file
DBCC SHRINKFILE ('m2', EMPTYFILE )
您可能必须在单用户模式下重新启动 SQL Server。(来源)
--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
在数据库中使用多个文件有助于将数据库分布在多个磁盘驱动器上。
还原数据库时不能更改文件的数量,但可以指明文件的还原位置。查看RESTORE DATABASE命令,MOVE 选项。
数据库还原后,您可以删除数据库文件。您必须使用清空文件的选项来缩小文件。然后,您可以使用ALTER DATABASE命令删除该文件。