【发布时间】:2012-01-08 03:29:58
【问题描述】:
我需要每天将我们的生产数据库刷新到另一个客户端服务器。
要求:我需要及时将.bak 文件从服务器a 移动到服务器b。
我们在这些服务器之间没有任何网络驱动器。
有什么方法可以使用 Sql Server 移动这些文件..
没有投标。
【问题讨论】:
标签: sql sql-server sql-server-2005 sql-server-2008
我需要每天将我们的生产数据库刷新到另一个客户端服务器。
要求:我需要及时将.bak 文件从服务器a 移动到服务器b。
我们在这些服务器之间没有任何网络驱动器。
有什么方法可以使用 Sql Server 移动这些文件..
没有投标。
【问题讨论】:
标签: sql sql-server sql-server-2005 sql-server-2008
有多种选择。只要启用它,T-SQL 就会提供xp_cmdshell 来执行dos 命令。这样,只要两个位置都有有效的 Windows 路径(当然权限设置适当),您就可以复制文件或调用可编写脚本的 FTP 客户端。当然,我必须指出 xp_cmdshell 默认禁用是有充分理由的,启用可能会大大降低安全性。我已经多次使用它来完成您所描述的工作,但您必须充分考虑安全后果。
如果您要通过网络移动它,您可能还想使用压缩。您当然可以使用 WinZip 或 7-Zip 之类的工具来执行此操作,但许多第三方 SQL 备份程序(例如 Red Gate's SQL Backup)都内置了压缩功能。
最后,您可以考虑从 SQL 本身之外执行此操作,例如通过 Powershell,它可以更优雅地处理文件操作,并且可以通过 SMO 与 SQL Server 一起工作。
【讨论】: