SQL Server 通过数据迁移到同一文件组中的其他文件来清空文件 清除后不能删除文件的问题 DBCC SHRINKFILE(file_name,EMPTYFILE)

问题:

由于在一个数据库中有 FileA文件(属于文件组GroupA)的可用空间很大,示例情况 100MB/10G(已用/分配空间)。

如果直接对该文件进行收缩,会存在收缩时间的不可把控,所以想到通过数据迁移到同一文件组中的其他文件来清空该文件(因为已用空间很小只有100MB移动起来不会花太长时间),再进行对该文件的删除,最终实现释放空间。

1.对数据库创建一个新的文件FileB,文件组为GroupA

2.使用数据库/任务/收缩/文件,选中FileA ,勾选择:通过数据迁移到同一文件组中的其他文件来清空文件

3.等待……

4.收缩完成,执行ALTER DATABASE [数据库名称]  REMOVE FILE [FileA]

问题在这一步出来,报错消息:无法对具有数据库快照或活动 DBCC 副本的数据库执行此操作。

解决办法:把该数据库的快照删除掉,再执行第4步,成功的把FileA文件删除掉。

 

 

 

 

 

posted @ 2012-09-17 16:28  随心而为  阅读(1878)  评论(0)    收藏  举报