启用S​​QL Server以在远程机器/驱动器上进行备份

我有一个SQL Server(2000年,2005年和2008年),我想使用SQL代理(或甚至一个简单的备份数据库'xxx'到磁盘='yyy'),备份到远程驱动器。

即:我有一个在SQL机器映射的驱动器,例如:“M:”映射到\\ otherbox \ someshare

默认情况下,SQL Server不允许你备份到这样的驱动器,但我认为有一种方法来启用。 有人可以指向我的文档?

提前致谢。

指定目的地时使用UNCpath – SQL Agent没有“映射”“驱动器”的概念。

此外,SQL代理通常以“本地服务”或“本地系统”运行,因此无权访问其他计算机上的远程共享。

你有几个select:

  • 将SQL代理作为域中的angular色帐户运行。 授予该帐户权限,以写入您想要备份存储的目录/共享。

  • 运行SQL代理作为“networking服务”。 它将使用服务正在运行的计算机的域计算机帐户向共享服务器进行身份validation。 授予该帐户权限,以写入您想要备份存储的目录/共享。

  • 如果您没有域,请在托pipeSQL代理的计算机和托pipe备份文件的计算机上创build一个具有相同用户名和密码的帐户。 将SQL Agent更改为作为此“angular色”帐户运行,并授予该帐户权限以写入您要备份存储的目录/共享。 (“穷人的领域”…)

我完全同意关于UNCpath的两个答案。

我还想补充说,即使映射驱动器,你有一个简单的解决方法。 您可以执行备份到您的服务器的任何正常的驱动器。 然后你可以添加

xp_cmdshell 'XCOPY [source] [destination] \flags' 

SQL命令添加到您运行的作业或SQL脚本。

使用xp_cmdshell可以做更多的事情 – 例如运行外部归档命令行工具,比如7z压缩文件,然后将其复制到映射驱动器(当远程连接速度太慢时…)

PS:忘了提及xp_cmdshell可以通过使用“Surface Area Configuration”工具和执行sp_configure来启用和禁用(默认情况下它是禁用的)

您的代理需要访问networking共享。 他们不需要预先映射。

你这样做:

 BACKUP DATABASE myDB TO DISK = '\\machine\share\dir\file.bak' 

我相信如果拥有这个工作的用户是一个sql系统pipe理员,它将在代理下运行,否则以非系统pipe理员用户身份运行。

请记住,SQL Server是非常不容忍的networking延迟。 如果它们发生,并且倾向于,则备份将失败。 对于生产环境我不推荐这种做法。

最好在本地备份,然后复制。