none
关于 dbcc shrinkfile的困惑 RRS feed

  • 问题

  • DB信息如下(sql2000)

    Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=SIMPLE, Version=539, Collation=Chinese_PRC_CI_AS, SQLSortOrder=0, IsAutoShrink, IsTornPageDetectionEnabled, IsAutoCreateStatistics, IsAutoUpdateStatistics

      数据库大约1.6T  ,

    sp_spaceused 出来可用空间  900G左右。

    我用了下面的方法5个尝试收缩DB

    1. dbcc shrinkfile(1,1000000)

    ----运行了5个多小时后停止 ,“dbcc执行完毕。如果dbcc输出了错误信息,请与系统管理员联系。”

     

    但是 数据库SIZE没有变,依然是1.6T

     

    2. 之后尝试 dbcc shrinkdatabase(XX,20)

    还是没有成功。

     

    3. 在EM里面

    右键、收缩数据库,  直接点击确定。  大约10分钟左右结束,SIZE 没有改变

     

    4. 在EM里面

    右键-》收缩数据库-》文件--》收缩文件至(选了最小的size)  。  几分钟左右结束,SIZE 没有改变

     

    5.因为之前删除了很多数据, 我怕sp_spaceused输出的信息有误,执行了dbcc updateusage

    之后再次执行 dbcc shrinkfile(1,1000000)  大约几分钟后结束,仍然没有成功。

     

    --------------------------------

     以前也用上面的方法收缩过数据库都是成功的。

    现在不知道什么原因这样,有人碰到过这样的情况吗

    2008年5月21日 3:49

答案

  •  

    我想我找到原因了

        我数据设置选项里面设置了自动收缩。

     

    那么系统在空闲空间大于25%的时候就会自动收缩,所以我手动收缩的时候不成功。(但sql怎么不提示呢)

      因为要收缩几百G,大概需要的时间很长。现在 运行sp_who2可以看到系统在自动收缩。从15号开始了,现在还在运行。

    所以在这之中的几天里我一直手动进行收缩都没有成功。

     

     

    thanks~~
    2008年5月23日 3:03

全部回复

  • What's unallocated space did sp_spaceused tell you? That's the space you can release from the database. When you shrink file in em, should check 'move pages to beginning of file before shrinking'. For database with that size, will take long while to shrink.

    2008年5月21日 14:16
  •  

    unallocated space  是900多G。
    2008年5月22日 1:11
  • 我在em里执行时选择了这个选项

    'move pages to beginning of file before shrinking'

    依然没有作用,运行半小时后结束。

    大小没有改变。。

      

    2008年5月22日 3:16
  •  

    2000是有这个问题,解决起来还很麻烦
    2008年5月22日 8:15
    版主
  • Did you click on 'files' and choose file to shrink in em? 

     

    2008年5月22日 13:59
  • 都试过了。

    4. 在EM里面

    右键-》收缩数据库-》文件--》收缩文件至(选了最小的size)  。  几分钟左右结束,SIZE 没有改变

    2008年5月23日 2:22
  •  

    我想我找到原因了

        我数据设置选项里面设置了自动收缩。

     

    那么系统在空闲空间大于25%的时候就会自动收缩,所以我手动收缩的时候不成功。(但sql怎么不提示呢)

      因为要收缩几百G,大概需要的时间很长。现在 运行sp_who2可以看到系统在自动收缩。从15号开始了,现在还在运行。

    所以在这之中的几天里我一直手动进行收缩都没有成功。

     

     

    thanks~~
    2008年5月23日 3:03