缩小SQL Server数据库无法正常工作

时间:2013-10-18 14:43:18

标签: sql-server sql-server-2008-r2

我不是DBA但是我需要缩小数据库,我尝试使用SSMS接口缩小它并且它没有用。

统计数据如下:

  • 大小:235,013.00 MB
  • 可用空间:65,587.59 MB

我也尝试了DBCC SHRINKDATABASE ... TRUNCATEONLY命令并且没有改变任何内容。

如何在不丢失数据的情况下缩小此数据库(将未使用的空间释放到操作系统)?

5 个答案:

答案 0 :(得分:7)

顺便也检查初始大小。如果您的初始大小为235,013 MB,那么您需要先缩小初始大小。

其次,缩小是你可以对数据文件做的最糟糕的事情之一。如果缩小tlog文件就可以了,因为tlogs不使用数据页面结构。如果缩小数据库数据文件,则可以将完全分散的数据库构建为完全分散的数据库。它会使表现无法承认。为什么你想顺便收缩?数据库是200英镑GB,有60个免费的东西....大约30%免费。难道你不想在一段时间内,可以利用这个空间吗?

如果仍需要缩小数据库,则可以创建文件组并将数据移动到该文件组并删除当前文件组,或者在主文件组的情况下,可以将大小减小到最小值。

答案 1 :(得分:1)

  1. 在SSMS中尝试使用右键单击DB-> Tasks-> Shrink-> Files来查看数据和事务日志文件使用了多少空间。
  2. 您的数据库的恢复模型可能设置为FULL,在这种情况下,除非您执行完整的数据库备份,否则您将无法收缩事务日志。如果不是问题,只需将恢复模型更改为简单并尝试再次缩小事务日志和数据文件。

答案 2 :(得分:0)

没有足够的评论要点,但要小心收缩。它可能会因索引碎片而影响性能

这里详细解释: http://www.theboreddba.com/Categories/indexes/SHRINK-a-data-file-Just-say-NO.aspx

萨姆

答案 3 :(得分:0)

点击这个。试图通过SSMS进行缩小,无论选择了哪个缩小选项,对话框都会立即关闭(没有任何错误或任何迹象表明它无法缩小数据库或文件)。

我最终创建了另一个逻辑ROWS数据文件,通过清空/迁移到新文件缩小主数据文件,然后再缩小/清空回原始数据文件。

这是一个开发数据库,​​所以我不太担心性能影响(只是想释放磁盘空间)。

答案 4 :(得分:0)

我通过以下步骤解决了该问题:

  1. 进行数据库备份
  2. 设置数据库为单用户模式
  3. 接受数据库离线
  4. 接受数据库在线
  5. 减小数据库和事务日志文件的初始文件大小
  6. 收缩数据库/文件
  7. 设置数据库为多用户模式