如何在 SQL 服务器代理作业中将数据库备份文件复制到另一台服务器

How to copy a database backup file to another server in SQL Server Agent job

我意识到我可能遗漏了一些简单的东西,但我想不通。

如果我在目标服务器上的批处理文件中使用以下 "copy" 命令,它可以正常工作。但是,如果我将它添加到执行备份的 SQL 服务器代理作业的步骤中,则会出现语法错误。那么,我做错了什么?似乎它可能卡在“/y”参数的“/”上,但我确实希望它覆盖现有文件。

copy /y "\DBServer\c$\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\db_daily.bak" "\DESTINATION\db\db_daily.bak"

错误是:

Incorrect syntax near '/'.  [SQLSTATE 42000] (Error 102).  The step failed.

我完全删除了 /y 并尝试了我能想到的一切。任何帮助将不胜感激。

确保您的步骤创建为类型“操作系统 (Cmd Exec),而不是交易 sql。

或使用 XP xp_cmdshell

   exec xp_cmdshell 'copy /y "\DBServer\c$\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\db_daily.bak" "\DESTINATION\db\db_daily.bak"' 

请注意,您可能需要启用 xp_cmdshell。