250GB驱动器上的SQL Server 2008数据库250GB

开始一个新的工作,有一个2008年的SQL数据库是250GB的大小。 开发商坚持说大小是正确的。 问题是250GB的MDF文件是坐在一个250GB的驱动器上。

我试图做一个数据库的备份,但我得到这个错误:

System.Data.SqlClient.SqlError:在文件“C:\ Backup \ backup.bkf:”112(无法检索此错误的文本,原因:1815)上发生不可恢复的I / O错误。 (Microsoft.SqlServer.Smo)

我基本上有两个select:

  • 如果可以的话,尽量减小密度板的尺寸!
  • 升级RAIDarrays

任何帮助赞赏。

谢谢

是的,您一定要将备份执行到具有足够可用空间的其他位置。 如果您有SQL2008 R2 Standard(或2008 Enterprise的任何版本),则可以执行压缩备份(也可以使用Quest Litespeed等第三方软件)。 否则,您的备份将与您的数据文件大小+日志文件大小一样大。

关于收缩,你必须首先确定是否可以收缩文件,通过了解文件本身的已用空间/可用空间。 一个250GB的文件可以使用240GB和10GB空间,反之亦然。 (最简单的方法是:右键单击数据库,然后进入Tasks> Shrink> Files。不要点击OK,只需看看当前分配的空间VS“可用空间”的数字,点击“File type”框看数据vs日志)。

根据你的发现,你会有几个select:

  1. 如果文件中有足够的可用空间,那么可能就好了。 数据文件不会尝试增长,直到完全填满为止(有些例外,如在特别庞大的表上重build索引)
  2. 如果你在文件中有空闲空间,你可以尝试恢复一些 。 (SQL需要一些“肘部空间”,可以这么说,所以不要试图恢复所有的空闲空间。)首先使用“释放未使用的空间”选项(这将简单地释放已经在文件末尾的空间)。 然后,如果您还需要更多,请select特定的目标大小,而不是尝试恢复所有可用空间。 总是跟随一个完整的索引重build,因为数据收缩导致文件碎片。
  3. 如果数据文件大部分已满,则可能仍有一些select:您可以在不同的驱动器上添加新的数据文件(位于同一个“文件组”中)。 确保250GB文件设置为自动增长,并且新文件(在另一个驱动器上)设置为自动增长。 因此,第一个文件中的任何“溢出”都会变成第二个文件。
  4. 如果您想更加谨慎,可以使用新的文件组创build一个文件(在另一个驱动器上)。 然后你需要移动特定的表或索引到这个新的文件(使用ALTER TABLE)

您可以尝试收缩数据库文件。 右键单击数据库 – >任务 – >收缩(在Mgmt Studio中)。 对于250 GB的数据库,这将需要很长时间 – 也许长达一个小时。

或者你可以连接一个外部的USB硬盘,并尝试备份到这一点。

显然,在另一个驱动器上进行备份。 如果数据库必须有250GB,则将其保留在250Gb。 您需要额外的空间进行维护操作,您有理想的额外存储空间。 这是一个很好的理由不运行SHRINKDATABASE …