Backup ExecのRemote Agentが検出できない?
作成日: 2014年2月6日
更新日: 2014年3月18日
Remote Agentが行方不明
ある日突然のこと、Backup Exec 2012のバックアップ・ジョブでエラーが出続けるようになりました。 エラー・メッセージは「XXX上にはRemote Agentが検出されませんでした。」です。
「XXX」はコンピューター名で、今回のケースでは自サーバーです。 Backup Execのメディア・サーバーが自分自身のローカルのバックアップを取得するという構成です。
この構成の場合でもメディア・サーバーにはリモート・エージェントがインストールされ、リモート・エージェント経由でバックアップが取得される動作になります。 その自サーバーで手下のリモート・エージェントが見つからないというエラーです。 その前日まではバックアップ・ジョブは正常終了していたので、Remote Agentの突然の出奔に戸惑うばかりでした。
エラーの原因
エラーの原因はポートの競合でした。 SymantecのサイトにBackup Execのポート(Article ID: HOWTO73384)という技術資料があります。 そこではRemote Agent(Backup Exec Agent fow Windows)のプロセスは10000番ポートを使うと書いてあります。
開いているポートとポートを開いたプロセスを調べるべく、「netstat -aon」コマンドと「tasklist」コマンドを実行しました(出力は前後中をバッサリ削っています)。 すると、10000番ポートを開いているプロセスが2つありました。 1つはPIDが3460の「beremote.exe」で、これはBackup Execのリモート・エージェントのプロセスです。 もう1つはPIDが2704の「emagent.exe」で、これはOracleのDB Console配下のエージェントのプロセスでした。
netstat -aonコマンドの出力
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態 PID
(前略)
TCP 0.0.0.0:10000 0.0.0.0:0 LISTENING 3460
(中略)
TCP 127.0.0.1:10000 0.0.0.0:0 LISTENING 2704
(後略)
tasklistコマンドの出力
イメージ名 PID セッション名 セッション# メモリ使用量
========================= ======== ================ =========== ============
(前略)
emagent.exe 2704 Services 0 43,860 K
(中略)
beremote.exe 3460 Services 0 63,152 K
(後略)
PIDが3460の「beremote.exe」が「0.0.0.0:10000」でListenしているのはSymantecの技術情報通りで理解できます。 分からないのは「emagent.exe」の「127.0.0.1:10000」です。 周りに聞き回ってみると、ある担当者がサーバーにOracleをインストールしたらしく、それによってDB Consoleが構成され、「emagent.exe」が「127.0.0.1:10000」で動き出したようでした。 Backup Execのバックアップ・ジョブがエラーになったタイミングとも一致しました。
DB ConsoleのWindowsサービスを停止すると「emagent.exe」も停止し、「127.0.0.1:10000」も開放されました。 その状態でバックアップ・ジョブを実行するとエラーは出なくなり正常終了しました。 よって、犯人はDB Controlの「emagent.exe」と断定しました。
Oracleの技術情報では「emagent.exe」が10000番ポートを使うと書かれたものは見当たりませんでした。 しかし、コマンド結果は語るです。 「emagent.exe」が使うポートは変更可能なようなので、ひとまず極刑に処したまま放置することにしました。
emagent.exeの10000番ポート変更方法
その後、Oracle側のemagent.exeのポート変更方法が分かりました。 emagent.exeがListenする10000番ポートはDB ControlのDHTML用ポートということでした。
これを変えるには「ORACLE_HOME\BIN\commonenv.bat」に「set EMAGENT_DHTML_PORT=x」(xはポート番号)の1行を追記するだけでした。 追記後にDB ControlのWindowsサービスを再起動すると、emagent.exeは指定したポート番号をListenするようになりました。 次の例はポート番号に「12345番」を指定したものです。上から3行まではデフォルトで記述されているものなのでそのままで構いません。[2014年3月18日 追記]
commonenv.batファイル
set EMPERLVER=5.10.0.0.0
set EMPERLOHBIN=\perl\bin
set EMPRODVER=#EMPRODVER#
set EMAGENT_DHTML_PORT=12345
更新履歴
更新日 | 更新内容 |
2014年2月6日 | 新規作成 |
2014年3月18日 | §3を追記 |