EMCC无法发现RAC实例主因是OEM agent未正确识别OCR/ASM配置;监控指标不一致源于采集粒度与归属逻辑差异;服务名状态误报多因agent连接方式问题;升级后指标缺失需启用TFA并部署SGFM插件。
EMCC 无法发现 RAC 数据库实例
常见现象是云控制台只显示集群节点主机,但 db instance 列为空,或状态为 unknown。根本原因通常是 oem agent 没有正确识别 rac 的 ocr 和 asm 配置,而非数据库本身不可达。
实操建议:
- 确认每个节点上的
oraagent进程以grid用户身份运行(不是oracle),否则无法读取+ASM相关视图 - 在 agent 主机执行:
$AGENT_HOME/bin/emctl config agent getparam | grep -i "rac\|asm",检查是否返回rac_database和asm_instance相关参数 - 手动触发发现:在 EMCC 中进入
Setup > Add Target > Add Targets Manually > Add Non-Host Targets Using Guided Process,选择Oracle Real Application Clusters Database类型,指定 SCAN VIP 和服务名,跳过自动发现 - 若仍失败,临时在
$ORACLE_HOME/network/admin/tnsnames.ora中为每个实例显式添加条目(含SERVER=DEDICATED和UR=A),避免 agent 依赖 SCAN 解析失败
监控大屏中 RAC 实例 CPU/IO 指标不一致
比如节点1的 DB CPU 显示 85%,但同节点上 Host CPU 只有 40%,或两个实例的 Physical Reads Per Sec 总和远低于 ASM 磁盘组的 Reads Per Sec。这不是数据错误,而是指标采集粒度与归属逻辑不同导致的。
关键点:
-
DB CPU来自V$SYSMETRIC,反映数据库内核时间(含等待、解析、执行),不含后台进程(如LGWR、CKPT)的 CPU 占用;而Host CPU是操作系统级统计 - RAC 中
Physical Reads默认只统计本地实例发起的 I/O;跨实例的global cache cr block receive不计入该值,但会体现在Cluster Interconnect Traffic中 - 大屏默认聚合周期为 5 分钟,若某实例短暂抖动(如 20 秒高负载),可能被平滑掉;需切到「实时性能」页签,选择
1 sec粒度验证 - 确认监控目标类型:必须将 RAC 数据库注册为
Oracle Real Application Clusters Database,而非多个独立的Oracle Database,否则跨实例等待事件(如gc cr block busy)无法关联分析
EMCC 中 RAC 服务名状态为 Down,但实际业务正常
典型错误信息:Target is unreachable: Connection refused (Connection refused),但应用通过该服务名仍能连通且事务成功。这通常是因为 OEM agent 尝试用 sqlplus / as sysdba 连接服务名对应实例失败,而非服务本身异常。
排查路径:
- 检查服务名是否绑定到所有实例(
srvctl config service -d <db></db>输出中Preferred instances应包含全部节点) - 确认监听器状态:在每个节点执行
lsnrctl status LISTENER_SCAN1(注意是 SCAN 监听器,不是本地LISTENER),看服务名是否出现在Service "<svc>" has 1 instance(s)</svc>下 - OEM agent 默认使用
tnsnames.ora中的ADDRESS_LIST第一项连接,若第一项是已下线节点的 VIP,就会报错;可编辑$AGENT_HOME/sysman/config/emd.properties,追加oracle.sysman.emSDK.emd.comm.agentConnRetryCount=3并重启 agent - 临时规避:在 EMCC 中编辑该服务目标,将
Monitoring Configuration→Test Connection Method改为SQL*Plus并指定一个稳定节点的 TNS 别名
升级 EMCC 后 RAC 监控指标大量缺失
升级到 13.5 或更高版本后,原有 RAC 目标下 Cluster Health、Global Cache Efficiency 等关键指标消失,仅剩基础 OS 指标。这是因为新版本默认禁用旧版 Cluster Health Monitor (CHM) 数据源,转而依赖 OSWatcher 和 Oracle Trace File Analyzer (TFA),但后者未被自动启用。
必须操作:
- 在每个 RAC 节点运行:
$GRID_HOME/bin/tfactl configure -enable(非 root 用户也可执行),确保 TFA 正在收集crsctl check cluster、oifcfg getif等输出 - 确认
$AGENT_HOME/plugins/oracle.em.sgfm.agent.plugin_*.zip已部署(EMCC 13.5+ 需要该插件解析 TFA 日志),若缺失需从 MOS 文档Doc ID 2726292.1下载并手工部署 - 在 EMCC 中重新发现 RAC 数据库目标:进入
Target Setup > Discover Targets > Select Target Types > Oracle Real Application Clusters Database,勾选Re-discover existing targets - 不要依赖「自动修复」按钮——它只会重试连接,不会重建 CHM/TFA 关联逻辑
最易被忽略的是 TFA 的 collection interval 默认为 30 秒,而 EMCC 大屏刷新最小粒度是 60 秒;若想看到秒级波动,得进 Performance > Real-Time SQL Monitoring 页面,那里直连数据库 V$ 视图,绕过 agent 缓存










