繁体   English   中英

在.Net中获取SQL Server数据库备份大小

[英]Get SQL Server database backup size in .Net

我们希望以编程方式进行数据库备份。 为此,我们使用了SqlServer.Management.Smo命名空间及其类,并且它运行良好。

现在,我们需要确定将数据库备份保存到指定位置之前,该位置是否有足够的空间来容纳备份文件。

如果没有足够的空间,我们想提醒用户这一事实。

我们发现的一种方法是,如果内存中没有足够的空间,则尝试捕获并捕获异常。 但是我们正在寻找一种在保存之前获取大小的解决方案。

在尝试备份数据库之前,无法获得确切的备份大小。

可以通过查看数据库文件大小来猜测大概大小。 如果您不知道它将有多大并且需要将估计值“发布”给不幸的磁盘已满的用户,这将很有用。 但真正的数据库大小可能会小很多

SELECT CAST(SUM(size) AS DECIMAL) * 8192 from sys.database_files

假设您仍然必须添加try-catch子句,则可以通过查看上一个备份大小来获得更简单,更准确的估计,如下所示:

SELECT TOP 1 database_name, backup_size FROM msdb..backupset ORDER BY backup_finish_date DESC

您可以将这两个值与可用磁盘空间量进行比较。 在通过后一种方法获得的数量上增加一些边距,以解决某些预期的数据库逐渐增长可能是有用的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM