SQL 使用 WinZip 命令行的服务器作业

SQL Server Job Using WinZip Command Line

我有一个 SQL Server 2008 作业,它备份数据库,然后压缩该备份并移动压缩文件。我的工作 运行 很好,直到它到达调用 WinZip 的步骤,该步骤执行:

c:\program files (x86)\winzip v19.5\winzip32.exe 
      -m \RemoteShare\RestrictedFolder\dbBack.zip 
      x:\SQLInstanceFolder\BackupFolders\dbBack.bak

作业既没有完成也没有失败;它只是停止前进。它将生成 dbBack.bak 文件并在远程位置创建 dbBack.zip 文件,但它不会从那里继续。它的行为似乎是在等待弹出确认,但是当我登录到控制台或从命令行 运行 zip 时,我没有看到。

我试过添加 -ybc 标志来自动确认或跳过任何提示,但它似乎没有做任何事情。该过程仍未完成。我什至尝试 > 管道输出过程,但它甚至不会写入我的日志文件。

这是一个安全的系统和基础设施,但我相当确定我没有被权限阻止。我的 SQL 服务器服务帐户 运行 作业可以访问它需要的文件夹,它可以 运行 winzip32.exe 进程。这个过程 运行 很好,但我们不得不在上周末 (19.5) 升级 WinZip,那时它停止正常工作。我们无法回滚到以前的版本 (10)。

有没有人知道什么可能会阻止我的进程或如何让它继续进行?

我想我发现了问题所在。事实证明,我们正在使用 WinZip 的 GUI 版本并从命令行调用可执行文件。即使我们看不到 GUI,它仍然存在。所以,确认我们压缩的提示还在程序的工作流程中,只是我们看不到,因而无法确认。并且确认标志不适用于 GUI 版本。

我的解决方法是使用我们的服务帐户登录到我的 SQL 服务器,然后 运行 进行 WinZip 操作。当它完成并给我 Add Complete 提示时,我选中 Do not display this dialog in the future 并单击 OK。当服务帐户运行其作业时,这将抑制该提示。

如果有人更改服务帐户,我们将不得不再次执行此操作,因此我们的最终解决方案将是安装 WinZip Commmand Line Plugin。希望完成后,我们不必为此担心。

但现在可以了。 :-)