0

我有一个在 solaris 上运行的 jenkins 设置。我已经配置了一个使用 jenkins ssh 插件在具有 oracle 数据库的远程 Windows 2008 R2 服务器上运行 .bat 文件的作业。.bat 文件在 oracle 数据库中执行 RMAN 还原。我有一个在 Windows 2008 R2 服务器上运行的 openssh 服务器。当我在较小的数据库上进行恢复时,运行时间不到 30 分钟,一切正常。但是,当数据库很大并且恢复需要 3 个小时以上时,jenkins 作业会挂起,即使该作业所执行的 rman 恢复已在服务器上成功完成。

这是我在 jenkins ssh 插件命令窗口中运行的命令:

/cygdrive/C/OpenSSH/bin/SSH_ImportTEST_DB.bat TEST3

这就是 .bat 文件的作用。

  1. 为 RMAN 还原准备数据库(以系统用户身份运行少量 sql 命令)
  2. 运行 RMAN 还原
  3. 再运行几个 sql 命令,让所有用户都可以使用数据库,重置密码。

第 1 步和第 2 步工作正常,但 jenkins 作业仅显示为正在运行第 2 步,即使它已在远程服务器上完成。如果 rman restore 运行超过 3 小时,它永远不会执行步骤 3。

X:\oracle\admin\TEST3\scripts>rman auxiliary cmdfile=X:\oracle\admin\TEST3\scripts\restore_db2.sql log=Y:\oracle\NightlyBackup\Prod\restore_MSIPTST3.log 
RMAN> 2> 

这是restore_db2.sql包含的内容:

DUPLICATE DATABASE TO TEST3 BACKUP LOCATION 'Y:\oracle\NightlyBackup\Prod';
exit;

我试过restore_db2.sql没有退出命令,但这也无济于事。

我已经ServerAliveInterval 60在运行 jenkins 的服务器上的 ssh_config 中进行了配置。我还在ClientAliveInterval 60openssh 服务器上的 sshd_config 中进行了配置,以排除超时。

有人可以帮忙吗?

4

1 回答 1

0

将您的 Windows 客户端设置为 jenkins slave,因为 cygwin openssh 不是远程作业的正确方法。在您的情况下,我会推荐 Java Web Start 选项。配置示例发布在:https ://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines

于 2015-10-09T10:46:26.593 回答