释放SQL Server驱动器上的空间

时间:2016-11-14 16:03:40

标签: sql-server

我今天遇到了一个错误,关于我的SQL表和日志存储的驱动器上的不可用空间,这导致我无法更新任何数据库。

我查看了数据库服务器并删除了大约1.5GB的数据库以允许我继续。在查看服务器驱动器时,我可以看到我在该位置删除的数据库的备份:

E:\ Program Files \ Microsoft SQL Server \ MCSSQL12.SQL2014 \ MSSQL \ Backup

在此文件夹中,最近5天有5个备份副本,我想删除这些副本以清理空间。但是,当我从此文件夹中删除.BAK文件时,它不会重新分配可用空间。我在某处错过了一步吗?

2 个答案:

答案 0 :(得分:3)

快速获胜:

  • 如果这是在SAN上,请将驱动器扩展20%,以便在排序其他所有内容时为您提供一些喘息空间。
  • 删除数据库不会删除其备份。你也必须删除它们(并确保它们不会落在回收站中)。但是,直到您确认要么A)真的不再需要它们,或者B)将这些备份的副本更加耐用。
  • 将备份移至其他驱动器 - 现在和计划备份。您的备份不应与数据位于同一驱动器上。将此项归于"将所有鸡蛋放入一个篮子中#34;请考虑一下:如果您的E驱动器出现故障,它将使用它来备份您的数据文件。你还剩下什么?
  • 查看您的备用保留期。你真的需要所有5个备份吗?在我的实例中,我们每15分钟执行一次完整备份和事务日志备份。我们在本地存储上最多保留2个Fulls - 其他一切都在磁带上。一旦你有一个Full,就不需要在Full和上一个之间的事务日志,除非你需要将Point In Time Restore恢复到它们之间的某个地方。所有这些都由代理人工作管理,执行Ola Hallengren的备份脚本,因此我们可以放手,只是监控。
  • 您使用的是备份压缩吗?如果没有,如果您无法更改保留期或备份位置(但实际上,为了安全起见,请将备份放在另一个卷上),这可能会帮助您在卷上获得更多备份。

不那么快的胜利:

  • 考虑将日志移至单独的驱动器。事务日志和数据文件具有不同的I / O配置文件/要求,因此通过将它们移动到不同的驱动器,您可以适当地调整每个驱动器,以满足性能和空间要求。
  • 检查您的索引并消除您真正需要的(或合并它们)。索引占用空间!删除未使用的索引不会为该卷提供可用空间,但它会释放MDF文件中可用于其他数据而不是立即增长的空间。

除非绝对必要,否则不要缩小数据库,您确信它在不久的将来不会再次显着增长。

答案 1 :(得分:1)

您的数据和日志文件增长量是多少?如果日志和数据文件所在的驱动器上有可用空间,并且允许自动文件增长,则sql server将在需要空间时增大文件。

您可能还需要查看MSDN有关dbcc命令缩小文件的信息。