收缩低于初始大小SQL Server 2005的数据文件

时间:2011-03-11 19:47:12

标签: sql-server-2005

以10 gigs为一个数据文件(主要)继承最小大小的数据库,将辅助文件的最小大小继承为6 gigs。

  1. 为什么有人创建了辅助数据文件(NDF)?
  2. 如何将这些缩小到低于为fiels设置的初始尺寸。

2 个答案:

答案 0 :(得分:2)

1. Why would someone have created a secondary data file (NDF)?

这是在操作系统上创建两个文件的方法。一些优点:

  • 2个文件句柄
  • 即使您不立即执行此操作,也可能跨越不同的磁盘或存储子系统(快/慢)分割
  • 准备分区
  • 控制每个文件的操作,如下面的shrinkfile
  • 允许将prod系统上的大型数据库恢复到没有单个足够大的磁盘用于单个文件的测试/开发系统上。因此,prod系统(同一文件夹)上的2x 400GB文件将恢复到开发系统上的2个不同的500GB磁盘上。

2. How do I shrink these below the initial sizes set for the files

使用DBCC SHRINKFILE代替DBCC SHRINKDATABASE。它可以设置为任何所需的大小,甚至小于初始大小,只要它大于当前存储的数据大小即可。要达到较小的尺寸,请设置目标

DBCC SHRINKFILE (1, 0);  -- file id 1, to 0% free space

要找出文件ID,您可以使用(在数据库中)

select * from sysfiles

答案 1 :(得分:0)

  1. 您将创建辅助数据文件以通过多个磁盘驱动器分发数据库。

  2. 您无法将原始文件缩小到初始大小以下。您可以缩小NDF文件以使其为空(请参阅DBCC SHRINKFILE,EMPTYFILE选项),然后删除该文件并按所需大小重新创建(如果需要)。收缩会将数据移动到文件组中的其他文件。