【发布时间】:2012-03-20 04:33:33
【问题描述】:
我们希望以编程方式进行数据库备份。为此,我们使用了SqlServer.Management.Smo 命名空间及其类,它运行良好。
现在我们需要在将 db 备份保存到指定位置之前确定该位置是否有足够的空间来保存备份文件。
如果没有足够的空间,我们想提醒用户这一事实。
我们发现的一种方法是,如果内存中没有足够的空间,则放置一个 try catch 并捕获异常。但是我们正在寻找一种解决方案来在保存之前获取大小。
【问题讨论】:
-
但在创建备份之前,您不会知道备份的大小,前提是有足够的可用空间。我认为唯一现实的解决方案是在驱动器上有 x 百分比的可用空间时警告用户。
-
您是在服务器本地备份文件,然后复制到新位置还是备份到目标位置?
-
@tsells:不,实际上它是一个表单应用程序并安装在客户端计算机上。我们正在将备份直接带到指定位置。
-
@mahesh:正如 Jirka 在他的回答中所说,如果不进行实际备份,就无法获得确切的备份大小——您能做的最好的事情就是使用其中一种技术进行估计在另一篇文章中,可能会添加 5 - 10% 的填充以确保安全。
标签: c# .net sql-server backup smo