現象
OMS 已配置完成,但 OEM 主控台掃描不到目標資料庫節點。
根因
Intelligent Agent (9i/10g) **必須在 `listener.ora` 靜態註冊 SID**,動態註冊不被 OEM 識別。
修正 listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test)
(ORACLE_HOME = /oracle/product/9.2.0)
(SID_NAME = test)
)
)
- `GLOBAL_DBNAME`:OEM 顯示的資料庫全域名稱。
- `SID_NAME`:實例 SID。
- `ORACLE_HOME`:完整路徑。
生效步驟
- 修改 `listener.ora`。
- 重啟 Listener:`lsnrctl stop` → `lsnrctl start`。
- 重啟 Agent 服務:Windows `services.msc` 重啟 `OracleOraHome90Agent`;Unix `$ORACLE_HOME/bin/agentctl stop/start`。
- OEM 主控台「重新整理節點」或等待自動發現週期。
驗證
lsnrctl services
# 應看到 "Instance "test", status READY, has 1 handler(s)..."
補充:10g/11g/12c+ 變化
- 10g+ 改用 **Database Control / Grid Control Agent**,不再依賴 Intelligent Agent,但 **靜態註冊仍建議保留** 以支援舊版工具、備份軟體、Data Guard Broker 等。
- 12c+ `listener.ora` 甚至可省略 `SID_LIST`(支援動態服務註冊),但 OEM Cloud Control 發現目標仍建議顯式註冊。