0

私はsolarisで実行されているジェンキンスのセットアップを持っています。Oracle データベースを持つリモート Windows 2008 R2 サーバーで、jenkins ssh プラグインを使用して、.bat ファイルを実行するジョブを構成しました。.bat ファイルは、oracle データベースで RMAN リストアを実行します。Windows 2008 R2 サーバーで実行されている openssh サーバーがあります。実行に30分もかからない小さなデータベースで復元を行うと、すべて正常に機能します。しかし、データベースが大きく、復元に 3 時間以上かかる場合、ジョブによって指定された rman 復元がサーバー上で正常に完了しても、jenkins ジョブがハングします。

これは、jenkins ssh プラグイン コマンド ウィンドウで実行するコマンドです。

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

これが .bat ファイルの機能です。

  1. RMAN 復元用の DB を準備します (システム ユーザーとしていくつかの SQL コマンドを実行します)。
  2. RMAN 復元を実行する
  3. さらにいくつかの SQL コマンドを実行して、すべてのユーザーがデータベースを使用できるようにし、パスワードをリセットします。

ステップ 1 と 2 は正常に機能しますが、リモート サーバーで完了したにもかかわらず、jenkins ジョブはステップ 2 を実行していると表示されます。rman リストアが 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;

exit コマンドなしで試してみましたrestore_db2.sqlが、それも役に立ちません。

ServerAliveInterval 60jenkinsが実行されているサーバーのssh_configで構成しました。ClientAliveInterval 60また、タイムアウトを除外するために、openssh サーバーの sshd_config で構成しました。

誰か助けてくれませんか?

4

1 に答える 1

0

cygwin openssh はリモート ジョブの適切な方法ではないため、Windows クライアントを jenkins スレーブとして設定します。あなたの場合、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 に答える