zoukankan      html  css  js  c++  java
  • 一个奇怪的注意事项TNS-12545 TNS-12560 TNS-00515

          近来的reportDB无法从一开始就与系统收听,比较奇怪的现象。

    由于server有听众的一个实例上正常启动,这是不是从开始监听器的实例手动启动是正常的。所以写下来未能找到离奇写的原因。

    1、故障现象

    Starting CRON daemondone
    Oracle 10g auto start/stop
    Startup "USMTHLY" listener.
    
    LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 08-JUL-2014 17:05:49
    
    Copyright (c) 1991, 2006, Oracle.  All rights reserved.
    
    Starting /users/oracle/OraHome10g/bin/tnslsnr: please wait...
    
    TNSLSNR for Linux: Version 10.2.0.3.0 - Production
    System parameter file is /users/oracle/OraHome10g/network/admin/listener.ora
    Log messages written to /users/oracle/OraHome10g/network/log/listener_usmthly.log
    Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.101.1.106)(PORT=1520)))
    TNS-12545: Connect failed because target host or object does not exist
     TNS-12560: TNS:protocol adapter error
      TNS-00515: Connect failed because target host or object does not exist
       Linux Error: 99: Cannot assign requested address
    
    #上面的错误信息了来自系统启动日志。相同出如今该实例的监听器日志里。   
    
    #故障环境
    oracle@sysreportDB:/users/oracle> cat /etc/issue
    
    Welcome to SUSE Linux Enterprise Server 10 SP4  (x86_64) - Kernel 
     (l).
    
    oracle@sysreportDB:/users/oracle> sqlplus -v
    
    SQL*Plus: Release 10.2.0.3.0 - Production
    
    #server启动后。检查数据库实例,2个实例都已成功启动
    oracle@sysreportDB:~> ps -ef | grep pmon | grep -v grep
    oracle    4916     1  0 Jul08 ?        00:00:00 ora_pmon_USMTHLY
    oracle    5605     1  0 Jul08 ?        00:00:00 ora_pmon_USBO2
    
    oracle@sysreportDB:~> ps -ef | grep lsnr| grep -v grep      #只唯独usbo2的监听被启动
    oracle    5597     1  0 Jul09 ?        00:00:00 /users/oracle/OraHome10g/bin/tnslsnr listener_USBO2 -inherit
    
    

    2、故障分析

    oracle@sysreportDB:~> oerr tns 12545
    12545, 00000, "Connect failed because target host or object does not exist"
    // *Cause: The address specified is not valid, or the program being 
    // connected to does not exist.
    // *Action: Ensure the ADDRESS parameters have been entered correctly; the
    // most likely incorrect parameter is the node name.  Ensure that the 
    // executable for the server exists (perhaps "oracle" is missing.)
    // If the protocol is TCP/IP, edit the TNSNAMES.ORA file to change the
    // host name to a numeric IP address and try again.
    oracle@sysreportDB:~> oerr tns 12560
    12560, 00000, "TNS:protocol adapter error"
    // *Cause: A generic protocol adapter error occurred.
    // *Action: Check addresses used for proper protocol specification. Before
    // reporting this error, look at the error stack and check for lower level
    // transport errors. For further details, turn on tracing and reexecute the
    // operation. Turn off tracing when the operation is complete.
    oracle@sysreportDB:~> oerr tns 00515
    00515, 00000, "Connect failed because target host or object does not exist"
    // *Cause: The address specified is not valid, or the program being 
    // connected to does not exist.
    // *Action: Ensure the ADDRESS parameters have been entered correctly; the
    // most likely incorrect parameter is the node name.  Ensure that the 
    // executable for the server exists (perhaps "oracle" is missing.)
    
    #上面的三个错误号描写叙述信息表明该故障与主机名或IP地址有关,须要检查是否为有效的IP或主机名
    #以下查看监听器及TNSNAMES的配置
    oracle@sysreportDB:/users/oracle/OraHome10g/network/admin> more listener.ora
    SID_LIST_LISTENER_USMTHLY =
       (SID_LIST =
        (SID_DESC =
            (sid_name=USMTHLY)
            (oracle_home = /users/oracle/OraHome10g)
        )
      )
    
    LISTENER_USMTHLY =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 10.101.1.106)(PORT = 1520))
          )
        )
      )
    
    SID_LIST_LISTENER_USBO2 =
       (SID_LIST =
        (SID_DESC =
            (sid_name=USBO2)
            (oracle_home = /users/oracle/OraHome10g)
        )
      )
    
    LISTENER_USBO2 =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 10.101.1.106)(PORT = 1504))
          )
        )
      )
    
    oracle@sysreportDB:/users/oracle/OraHome10g/network/admin> more tnsnames.ora
    USMTHLY=
      (DESCRIPTION=
        (ADDRESS=
          (PROTOCOL=TCP)
          (HOST=10.101.1.106)
          (PORT=1520)
        )
        (CONNECT_DATA=
          (SERVICE_NAME=USMTHLY)
        )
      )
    
    USBO2=
      (DESCRIPTION=
        (ADDRESS=
          (PROTOCOL=TCP)
          (HOST=10.101.1.106)
          (PORT=1504)
        )
        (CONNECT_DATA=
          (SERVICE_NAME=USBO2)
        )
      )
    #从上面的配置来看,配置无异常。
    #以下查看本机host及IP信息,从以下的描写叙述来看,主机host配置无异常
    oracle@sysreportDB:~> more /etc/hosts
    127.0.0.1       localhost
    
    # special IPv6 addresses
    ::1             localhost ipv6-localhost ipv6-loopback
    
    fe00::0         ipv6-localnet
    ff00::0         ipv6-mcastprefix
    ff02::1         ipv6-allnodes
    ff02::2         ipv6-allrouters
    ff02::3         ipv6-allhosts
    10.101.1.106    sysreportDB.2goasp.com sysreportDB  
    
    oracle@sysreportDB:~> hostname
    sysreportDB
    # Author : Leshami
    # Blog   : http://blog.csdn.net/leshami
    
    #以下是其IP信息
    oracle@sysreportDB:/var/log> ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:70:82:63
              inet addr:10.101.1.106  Bcast:10.201.1.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:5763651 errors:0 dropped:0 overruns:0 frame:0
              TX packets:802254 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:8102327746 (7726.9 Mb)  TX bytes:88597013 (84.4 Mb)
    
    lo        Link encap:Local Loopback      #有环路能正常TX,RX
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:92972 errors:0 dropped:0 overruns:0 frame:0
              TX packets:92972 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:4993723 (4.7 Mb)  TX bytes:4993723 (4.7 Mb)
    
    #尝试手动启动监听,手动启动监听无异常    
    oracle@sysreportDB:/var/log> lsnrctl start listener_USMTHLY
    
    LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 08-JUL-2014 17:10:49
    
    Copyright (c) 1991, 2006, Oracle.  All rights reserved.
    
    Starting /users/oracle/OraHome10g/bin/tnslsnr: please wait...
    
    TNSLSNR for Linux: Version 10.2.0.3.0 - Production
    System parameter file is /users/oracle/OraHome10g/network/admin/listener.ora
    Log messages written to /users/oracle/OraHome10g/network/log/listener_usmthly.log
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sysreportDB.2goasp.com)(PORT=1520)))
    
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sysreportDB.2goasp.com)(PORT=1520)))
    STATUS of the LISTENER
    ------------------------
    Alias                     listener_USMTHLY
    Version                   TNSLSNR for Linux: Version 10.2.0.3.0 - Production
    Start Date                08-JUL-2014 17:10:50
    Uptime                    0 days 0 hr. 0 min. 0 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   /users/oracle/OraHome10g/network/admin/listener.ora
    Listener Log File         /users/oracle/OraHome10g/network/log/listener_usmthly.log
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sysreportDB.2goasp.com)(PORT=1520)))
    Services Summary...
    Service "USMTHLY" has 1 instance(s).
      Instance "USMTHLY", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully
    
    #通过上面的測试可以看出,监听器可以正常启动也就是说监听器的配置应该是OK的。

    #另外一点发现,系统启动日志里边有127.0.0.2的环路。不知道怎么会有127.0.0.2 Setting up network interfaces: lo lo IP address: 127.0.0.1/8 IP address: 127.0.0.2/8 oracle@sysreportDB:/var/log> ping 127.0.0.2 #环路127.0.0.2 OK PING 127.0.0.2 (127.0.0.2) 56(84) bytes of data. 64 bytes from 127.0.0.2: icmp_seq=1 ttl=64 time=0.034 ms

    3、故障解决

    #对于上面的问题实在是百思不得其解。就差使用sqlnet trace。
    #以下尝试将监听器配置文件内IP地址使用主机名来取代,居然成功鸟。
    #例如以下2种方式都能够将监听随系统启动而启动。一个是主机名,一个是full主机名
    
    #LISTENER_USMTHLY =
    #  (DESCRIPTION_LIST =
    #    (DESCRIPTION =
    #      (ADDRESS_LIST =
    #        (ADDRESS = (PROTOCOL = TCP)(HOST = sysreportDB)(PORT = 1520))
    #      )
    #    )
    #  )
    
    LISTENER_USMTHLY =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = sysreportDB.2goasp.com)(PORT = 1520))
          )
        )
      )
    
    #高兴之余,查看系统日志,汗,还是有错误,这次的错误是TNS-12543,目标主机不可达。

    #怀疑是否hosts文件里是否存在异常字符。于是尝试重建Hosts文件。重建后错误消息依然例如以下。 Starting CRON daemondone Oracle 10g auto start/stop Starting Oracle10g: Startup "USMTHLY" listener. LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 09-JUL-2014 17:15:47 Copyright (c) 1991, 2006, Oracle. All rights reserved. Starting /users/oracle/OraHome10g/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.3.0 - Production System parameter file is /users/oracle/OraHome10g/network/admin/listener.ora Log messages written to /users/oracle/OraHome10g/network/log/listener_usmthly.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sysreportDB.2goasp.com)(PORT=1520))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sysreportDB)(PORT=1520))) TNS-12543: TNS:destination host unreachable TNS-12560: TNS:protocol adapter error TNS-00513: Destination host unreachable Linux Error: 101: Network is unreachable #终于。此题临时无解,没有找到原因。不影响自启动而已。


    4、小结
    a、对于TNS-12545。TNS-00515应首先考虑是否使用了合适的IP。主机名。应检查serverhost文件。网络配置等
    b、Step a检查完后应考虑是否正确的配置了监听以及tnsnames
    c、对于上述该类错误,应同一时候检查及分析监听器日志   
    d、对于client出现TNS-12545,TNS-00515等,考虑client是否能将主机转换成相应的IP(clienttnsnames.ora使用主机名的情形时)
    e、有关Oracle网络配置相关能够參考:
    http://blog.csdn.net/leshami/article/category/828434

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    在循环中正确找到对应DOM元素的索引
    JavaScript继承方式(1)
    JavaScript的写类方式(1)
    基于WF4的新平台地理模块的3D模块
    基于WF4的新平台流程模式(4)动态并发
    基于WF4的新平台流程模式(9)表单路由启动传入
    基于WF4的新平台地理模块的3D模块
    基于WF4的新平台流程模式(2)启动条件路由
    基于WF4的新平台表单设计器功能简介
    我的2010年
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4755693.html
Copyright © 2011-2022 走看看