我正在寻找一个示例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 Compressed Backup ,在一个项目中完成您所需的工作步骤:

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,它们没有限制。

为什么不使用像 SqlBackupAndFtp 这样的简单工具?它们通过简单的界面完全满足您的需求(sql备份+移动到远程位置),您无需编写任何脚本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top