使用 T-SQL 压缩备份文件

mKo*_*bel 5 sql-server backup compression

是否可以在从维护计划调用的存储过程中将备份文件压缩为 .zip(或其他)?

我的维护计划包含以下步骤:

  • 检查数据库(一致性,re_index,也许不重要)

  • 完整备份

  • 使用 restore_verifyonly 检查备份文件

  • 收缩数据库

在 restore_verifyonly/shrink 数据库之后我想压缩这个文件。

RoK*_*oKa 6

SQL 2008 Enterprise 中引入了备份压缩,并在 SQL2008R2 及更高版本中添加到标准版中。

创建备份时,您可以指定WITH COMPRESSION关键字,这将确保将数据库备份大小压缩到与压缩的“正常”备份文件大致相似的大小。

对于 SQL2005 或更早版本,最好的方法(除了使用 RedGate 之类的特定工具之外)是确保xp_cmdshell在实例上启用它,然后使用命令行进行压缩,例如 WinRar。

我使用一个看起来像这样的 cmd 文件:

@echo off
Set "winrarPath=C:\Program Files\WinRAR"
"%winrarPath%\winrar.exe" a -r "ZippedBackup.zip" "BackupFile.BAK" 
Run Code Online (Sandbox Code Playgroud)

然后,您可以从 2000 / 2005 实例执行此 cmd 文件。%1如果您的文件名不是通用的,您还可以将-type 变量传递给 cmd 文件。