トップページコラム > > Backup ExecのRemote Agentが検出できない?





Backup ExecのRemote Agentが検出できない?

作成日: 2014年2月6日
更新日: 2014年3月18日

Remote Agentが行方不明

Backup Execのジョブログのエラー画面の画像

ある日突然のこと、Backup Exec 2012のバックアップ・ジョブでエラーが出続けるようになりました。 エラー・メッセージは「XXX上にはRemote Agentが検出されませんでした。」です。

「XXX」はコンピューター名で、今回のケースでは自サーバーです。 Backup Execのメディア・サーバーが自分自身のローカルのバックアップを取得するという構成です。

この構成の場合でもメディア・サーバーにはリモート・エージェントがインストールされ、リモート・エージェント経由でバックアップが取得される動作になります。 その自サーバーで手下のリモート・エージェントが見つからないというエラーです。 その前日まではバックアップ・ジョブは正常終了していたので、Remote Agentの突然の出奔に戸惑うばかりでした。

エラーの原因

Backup Exec Agent for Windowsが使うポート番号の画像

エラーの原因はポートの競合でした。 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を追記