一个奇怪的注意事项TNS-12545 TNS-12560 TNS-00515
????? 近來的reportDB無法從一開始就與系統(tǒng)收聽,比較奇怪的現(xiàn)象。
由于server有聽眾的一個(gè)實(shí)例上正常啟動(dòng),這是不是從開始監(jiān)聽器的實(shí)例手動(dòng)啟動(dòng)是正常的。所以寫下來未能找到離奇寫的原因。
?
1、故障現(xiàn)象
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:49Copyright (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 existTNS-12560: TNS:protocol adapter errorTNS-00515: Connect failed because target host or object does not existLinux Error: 99: Cannot assign requested address#上面的錯(cuò)誤信息了來自系統(tǒng)啟動(dòng)日志。相同出如今該實(shí)例的監(jiān)聽器日志里。 #故障環(huán)境 oracle@sysreportDB:/users/oracle> cat /etc/issueWelcome to SUSE Linux Enterprise Server 10 SP4 (x86_64) - Kernel \r (\l).oracle@sysreportDB:/users/oracle> sqlplus -vSQL*Plus: Release 10.2.0.3.0 - Production#server啟動(dòng)后。檢查數(shù)據(jù)庫實(shí)例,2個(gè)實(shí)例都已成功啟動(dòng) 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_USBO2oracle@sysreportDB:~> ps -ef | grep lsnr| grep -v grep #只唯獨(dú)usbo2的監(jiān)聽被啟動(dòng) oracle 5597 1 0 Jul09 ? 00:00:00 /users/oracle/OraHome10g/bin/tnslsnr listener_USBO2 -inherit2、故障分析
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.)#上面的三個(gè)錯(cuò)誤號(hào)描寫敘述信息表明該故障與主機(jī)名或IP地址有關(guān),須要檢查是否為有效的IP或主機(jī)名 #以下查看監(jiān)聽器及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))) #從上面的配置來看,配置無異常。 #以下查看本機(jī)host及IP信息,從以下的描寫敘述來看,主機(jī)host配置無異常 oracle@sysreportDB:~> more /etc/hosts 127.0.0.1 localhost# special IPv6 addresses ::1 localhost ipv6-localhost ipv6-loopbackfe00::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:63inet addr:10.101.1.106 Bcast:10.201.1.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:5763651 errors:0 dropped:0 overruns:0 frame:0TX packets:802254 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:8102327746 (7726.9 Mb) TX bytes:88597013 (84.4 Mb)lo Link encap:Local Loopback #有環(huán)路能正常TX,RXinet addr:127.0.0.1 Mask:255.0.0.0UP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:92972 errors:0 dropped:0 overruns:0 frame:0TX packets:92972 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:4993723 (4.7 Mb) TX bytes:4993723 (4.7 Mb)#嘗試手動(dòng)啟動(dòng)監(jiān)聽,手動(dòng)啟動(dòng)監(jiān)聽無異常 oracle@sysreportDB:/var/log> lsnrctl start listener_USMTHLYLSNRCTL for Linux: Version 10.2.0.3.0 - Production on 08-JUL-2014 17:10:49Copyright (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#通過上面的測(cè)試可以看出,監(jiān)聽器可以正常啟動(dòng)也就是說監(jiān)聽器的配置應(yīng)該是OK的。#另外一點(diǎn)發(fā)現(xiàn),系統(tǒng)啟動(dòng)日志里邊有127.0.0.2的環(huán)路。不知道怎么會(huì)有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 #環(huán)路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、故障解決
#對(duì)于上面的問題實(shí)在是百思不得其解。就差使用sqlnet trace。 #以下嘗試將監(jiān)聽器配置文件內(nèi)IP地址使用主機(jī)名來取代,居然成功鳥。 #例如以下2種方式都能夠?qū)⒈O(jiān)聽隨系統(tǒng)啟動(dòng)而啟動(dòng)。一個(gè)是主機(jī)名,一個(gè)是full主機(jī)名#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)))))#高興之余,查看系統(tǒng)日志,汗,還是有錯(cuò)誤,這次的錯(cuò)誤是TNS-12543,目標(biāo)主機(jī)不可達(dá)。#懷疑是否hosts文件里是否存在異常字符。于是嘗試重建Hosts文件。重建后錯(cuò)誤消息依然例如以下。 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 #終于。此題臨時(shí)無解,沒有找到原因。不影響自啟動(dòng)而已。
4、小結(jié)
a、對(duì)于TNS-12545。TNS-00515應(yīng)首先考慮是否使用了合適的IP。主機(jī)名。應(yīng)檢查serverhost文件。網(wǎng)絡(luò)配置等
b、Step a檢查完后應(yīng)考慮是否正確的配置了監(jiān)聽以及tnsnames
c、對(duì)于上述該類錯(cuò)誤,應(yīng)同一時(shí)候檢查及分析監(jiān)聽器日志???
d、對(duì)于client出現(xiàn)TNS-12545,TNS-00515等,考慮client是否能將主機(jī)轉(zhuǎn)換成相應(yīng)的IP(clienttnsnames.ora使用主機(jī)名的情形時(shí))
e、有關(guān)Oracle網(wǎng)絡(luò)配置相關(guān)能夠參考:http://blog.csdn.net/leshami/article/category/828434
版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的一个奇怪的注意事项TNS-12545 TNS-12560 TNS-00515的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 下拉框——把一个select框中选中内容
- 下一篇: [华为机试练习题]60.水仙花数