ITPub博客

首页 > 数据库 > Oracle > Nagois监控oracle数据库注意的地方

Nagois监控oracle数据库注意的地方

原创 Oracle 作者:lusklusklusk 时间:2017-01-22 11:43:04 0 删除 编辑

客户端的nagios用户必须加入oracle用户组

/etc/oratab文件必须存在,且ORACLE_SID:ORACLE_HOME必须存在
nagios用户的.bash_profile文件必须有ORACLE_SID和ORACLE_HOME变量


nagios客户端 必须在nagios、oracle、root三个用户下执行如下都正常的时候,nagios服务端才不会报错
/usr/local/nagios/libexec/check_oracle --login SIDNAME


-- login tnsname相当于既监控了listener,也监控了DB


/usr/local/nagios/libexec/check_oracle中有如下内容
  echo "  $PROGNAME --tns "
  echo "  $PROGNAME --db "
  echo "  $PROGNAME --login "
  echo "  $PROGNAME --connect "
  echo "  $PROGNAME --cache     "
  echo "  $PROGNAME --tablespace      "
  echo "  $PROGNAME --oranames "
  echo "  $PROGNAME --tns <Oracle Sid or Hostname/IP address>"
  echo "  $PROGNAME --db <ORACLE_SID>"
  echo "  $PROGNAME --login <ORACLE_SID>"
  echo "  $PROGNAME --connect <ORACLE_SID>"
  echo "  $PROGNAME --cache <ORACLE_SID> <USER> <PASS> <CRITICAL> <WARNING>"
  echo "  $PROGNAME --tablespace <ORACLE_SID> <USER> <PASS> <TABLESPACE> <CRITICAL> <WARNING>"
  echo "  $PROGNAME --oranames <Hostname>"



其实发现 login时,sid和tnsname都可以正常使用 (客户端nagios和oracle用户执行如下语句都正常)
/usr/local/nagios/libexec/check_oracle --login ORACLE_SID(root用户执行也正常,nagios服务端正常不报错)
/usr/local/nagios/libexec/check_oracle --login tnsname( 但是 root用户执行会报错,nagios服务端也报错,
除非把客户端
/etc/oratab中SID名称修改为tnsname )


Dataguard情况的备库环境下,本机的sid和本机的tnsname一般是不同的
使用sid时,发现监控的是主库
使用tnsname时,nagios客户端的nagios、oracle执行/usr/local/nagios/libexec/check_oracle --login tnsname都正常,
但是nagios客户端的root执行/usr/local/nagios/libexec/check_oracle --login tnsname又报错,从而nagios服务端也报错,
除非在nagios客户端修改/etc/oratab中SID名称为tnsname名称






如下dwdg既非SID也非tnsname,则报错,oracle用户下和root下报错是不一样的
[oracle@dwdg ~]$ /usr/local/nagios/libexec/check_oracle --login dwdg
CRITICAL - ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
[root@dwdg ~]# /usr/local/nagios/libexec/check_oracle --login dwdg
Cannot determine ORACLE_HOME for sid dwdg


如下DWDG138是tnsname的时候,关闭监听,则报错,oracle用户下和root下报错是一样的,说明 使用login tnsname 可以监控监听
[root@dwdg ~]# /usr/local/nagios/libexec/check_oracle --login DWDG138
CRITICAL - ORA-12541: TNS:no listener
[oracle@dwdg ~]$ /usr/local/nagios/libexec/check_oracle --login DWDG138
CRITICAL - ORA-12541: TNS:no listener


如下DWDG138是tnsname的时候,监听正常,修改/etc/oratab中SID名称为DWDG138,但是DB的实际SID是DW,但是关闭了DB,则报错,
说明 使用login tnsname可以监控监听和DB

[root@dwdg ~]# /usr/local/nagios/libexec/check_oracle --login DWDG138
CRITICAL - ORA-01034: ORACLE not available


此外login tnsname仅来自ORACLE_HOME/network/admin/tnsnames.ora,因ERP环境tns为ORACLE_HOME/network/admin/SID_hostname/tnsnames.ora,则ERP环境下需要cp ORACLE_HOME/network/admin/SID_hostname/tnsnames.ora  ORACLE_HOME/network/admin/tnsnames.ora

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30126024/viewspace-2132787/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: JDK、JRE、J2SE SDK
请登录后发表评论 登录
全部评论
Welcome to Lukes DB HOME。 Oracle OCM、Mysql OCP, 10年DBA工作经验,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    348
  • 访问量
    1174958