用于压缩和传输数据库备份文件的示例 sql 脚本

Posted

技术标签:

【中文标题】用于压缩和传输数据库备份文件的示例 sql 脚本【英文标题】:Sample sql script to zip and transfer database backup file 【发布时间】:2008-09-24 16:20:14 【问题描述】:

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

【问题讨论】:

【参考方案1】:

您可以使用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'

【讨论】:

【参考方案2】:

xp_cmdshell 是一种方法,尽管它并不理想,因为启用它会降低服务器的安全性。

我的开源项目SQL Server Compressed Backup,一步就能满足您的需求:

msbp.exe backup "db(database=model)" "zip64" "local(path=\\server\share\path\model.full.bak.zip)"

SQL Server Compressed Backup 的安装只是“xcopy”部署——无需安装/卸载任何东西,如果您只需要这样做一次,这是理想的选择。

它使用 zip64,因为标准 zip 格式有 4 GB 的限制。可用的替代压缩格式是 gzip 和 bzip2,它们没有限制。

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于用于压缩和传输数据库备份文件的示例 sql 脚本的主要内容,如果未能解决你的问题,请参考以下文章

Lftp+Sftp传输总结

Mysql 自动备份脚本

DBA使用Shell完成自动化相关工作

Navicat 数据传输和数据同步的区别

mysql数据库备份和还原

Linux使用shell脚本实现增量备份文件Linux合并历史备份文件Linux中find命令查询tar -cvzf文件生成压缩包Linux压缩包合并