示例sql脚本来压缩和传输数据库备份文件
时间:2020-03-06 14:40:22 来源:igfitidea点击:
我正在寻找一个示例sql脚本来压缩数据库备份文件(.bak)并将其传输到远程位置。如果有,请分享。
解决方案
我们可以使用xp_cmdshell调用用于压缩和复制的命令。
在这里的示例中,我使用winzip命令行(用于压缩/解压缩)和xcopy来传输文件。
EXEC master..xp_cmdshell 'C:\"Program Files"\WinZip\wzzip C:\Database.bak.zip C:\Database.bak'; EXEC master..xp_cmdshell 'C:\"Program Files"\WinZip\wzunzip -o "C:\Database.bak.zip" "C:\Database"'; EXEC master..xp_cmdshell 'xcopy "C:\Database.bak.zip" "\networkshare\Backups" /Y'
xp_cmdshell是一种方法,尽管它不是理想的方法,因为启用它会使服务器的安全性降低。
我的开源项目SQL Server压缩备份可一步完成我们要寻找的内容:
msbp.exe backup "db(database=model)" "zip64" "local(path=\server\share\path\model.full.bak.zip)"
SQL Server压缩备份的安装仅是" xcopy"部署-无需安装/卸载任何内容,如果我们只需执行一次,则非常理想。
它使用zip64,因为标准zip格式的限制为4 GB。可用的其他压缩格式是gzip和bzip2,没有限制。