You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c Nagios监控报ORA-12154错误排查求助

排查Oracle 19c Nagios监控ORA-12154错误的核心步骤
  • 校验Nagios执行用户的环境变量
    Oracle 19c对环境变量的依赖和18c存在细微差异,重点确认ORACLE_HOME、ORACLE_SID、TNS_ADMIN这三个变量是否正确指向19c的安装路径。切换到nagios用户,执行以下命令验证:

    echo $ORACLE_HOME
    echo $TNS_ADMIN
    sqlplus username/password@tns_name
    

    确保手动执行sqlplus能正常连接19c实例,排除环境变量继承18c配置的问题。

  • 检查tnsnames.ora的权限与访问路径
    即使文件内容和18c完全一致,也要确认19c的tnsnames.ora所在目录(通常为$ORACLE_HOME/network/admin)对nagios用户有可读权限。如果配置了TNS_ADMIN自定义路径,必须保证nagios用户能访问该路径下的所有配置文件,而非仅数据库用户有权限。

  • 验证19c监听的实例注册状态
    19c默认监听可能启用了VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON这类严格参数,导致实例无法自动注册。执行lsnrctl status查看监听状态,确认目标19c实例是否已注册。若未注册,可执行以下命令手动注册:

    ALTER SYSTEM REGISTER;
    

    同时检查数据库的local_listener参数配置是否正确指向监听地址。

  • 直接执行Nagios插件命令排查
    跳过Nagios web界面,直接在服务器上手动运行监控插件命令,获取更详细的报错信息。例如:

    check_oracle_health --connect YOUR_TNS_NAME --username MONITOR_USER --password MONITOR_PASS --mode tnsping --verbose
    

    通过--verbose参数能看到插件执行时的TNS解析细节,定位是否是插件本身的解析逻辑问题。

  • 对比调整sqlnet.ora配置
    19c默认的sqlnet.ora可能开启了18c没有的安全特性,比如SQLNET.AUTHENTICATION_SERVICES=(NONE)或NAMES.DIRECTORY_PATH的顺序变更。将19c的sqlnet.ora配置调整为与18c完全一致,重启监听和数据库实例后再测试监控连接。

  • 确认插件与19c的兼容性
    部分旧版本的Nagios Oracle监控插件对19c的TNS解析支持不完善,检查插件版本(比如check_oracle_health --version),尝试更新至最新版本后重新测试。

内容的提问来源于stack exchange,提问作者tafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:40:36