5

我正在寻找一个示例 sql 脚本来压缩我的数据库备份文件 (.bak) 并传输到远程位置。如果你随身携带,请分享。

4

3 回答 3

5

您可以使用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'
于 2008-09-24T16:22:32.437 回答
3

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

于 2009-11-24T01:39:17.070 回答
2

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

于 2012-10-09T09:25:21.393 回答