无法启动oracle监听处理
【LISTENER】主机名修改为IP地址后LISTENER无法监听到实例
----为什么listener.ora文件里面HOST后面到底应该输入IP地址还是主机名。我的经验告
诉我,这边最好使用主机名。很多的时候,一个机器绑定的不只一个IP地址,如HOST后面是IP地址,那么ORACLE的listener只会监听指定的IP地址的访问请求,本机其它IP地址的连接都会拒绝的。另外,创建监听的时候,listener.ora文件默认创建的就是主机名。那么,如果没有特别的需要,就不要再去画蛇添足的修改host_name为IP地址了。
将listener.ora和tnsnames.ora文件中的HOST信息从原来的主机名字修改为IP地址后,监听可以启动,但是无论如何也监听不到数据库实例的信息(即使反复重启数据库)。
修改后重新启动监听,但是监听一直保持在如下的状态LSNRCTL>statusConnecting
to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=144.194.192.183)(PORT=1521)))
STATUSoftheLISTENER------------------------
AliasLISTENER
VersionTNSLSNRforLinux:Version10.2.0.1.0-Production
StartDate21-JUL-201*14:34:20
Uptime0days0hr.0min.36secTraceLeveloff
SecurityON:LocalOSAuthenticationSNMPOFFListenerParameterFile/oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.oraListenerLogFile/oracle/app/oracle/product/10.2.0/db_1/network/log/listener.log
ListeningEndpointsSummary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=144.194.192.183)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))ServicesSummary...
Service"PLSExtProc"has1instance(s).
Instance"PLSExtProc",statusUNKNOWN,has1handler(s)forthisservice...
Thecommandcompletedsuccessfully
.【问题原因】
罪魁祸首在/etc/hosts文件!!
先看一下在我处理之前该文件的内容:[root@testdb~]#cat/etc/hosts
#Donotremovethefollowingline,orvariousprograms#thatrequirenetworkfunctionalitywillfail.
127.0.0.1testdblocalhost.localdomainlocalhost::1localhost6.localdomain6localhost6
在这种默认配置下(操作系统安装后的状态),主机名字和本机的IP地址没有对应起来..【问题解决】
(1)将/etc/hosts内容修改为:
[root@testdb~]#cat/etc/hosts
#Donotremovethefollowingline,orvariousprograms#thatrequirenetworkfunctionalitywillfail.127.0.0.1localhost.localdomainlocalhost::1localhost6.localdomain6localhost6144.194.192.183testdb
比较一下与之前文件的不同,这里修改的内容如下:1)将127.0.0.1后面的testdb主机名删除
2)添加IP地址和主机名对应关系144.194.192.183testdb
通过ping主机名testdb的方式验证一下修改后的效果:ora10g@testdb/home/oracle$pingtestdb
PINGtestdb(144.194.192.183)56(84)bytesofdata.
64bytesfromtestdb(144.194.192.183):icmp_seq=1ttl=64time=0.082ms
64bytesfromtestdb(144.194.192.183):icmp_seq=2ttl=64time=0.047ms
64bytesfromtestdb(144.194.192.183):icmp_seq=3ttl=64time=0.050ms
到此,主机名testdb与IP地址144.194.192.183建立起了对应关系。
(2)重新启动监听
oracle监听器启动错误-TNS-12546:TNS:permissiondenied
看下监听器状态
oracle@linux-34:~>lsnrctlstatus
LSNRCTLforLinux:Version11.1.0.6.0-Productionon14-OCT-201*09:12:37
Copyright(c)1991,201*,Oracle.Allrightsreserved.Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux-34.site)(PORT=1521)))
TNS-12541:TNS:nolistener
TNS-12560:TNS:protocoladaptererrorTNS-00511:Nolistener
LinuxError:111:ConnectionrefusedConnectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))TNS-12541:TNS:nolistener
TNS-12560:TNS:protocoladaptererrorTNS-00511:Nolistener
LinuxError:111:Connectionrefused
启动下试试
oracle@linux-34:~>lsnrctlstart
LSNRCTLforLinux:Version11.1.0.6.0-Productionon14-OCT-201*09:12:45
Copyright(c)1991,201*,Oracle.Allrightsreserved.
Starting/home/oracle/product/11.1.0/db_1/bin/tnslsnr:pleasewait...
TNSLSNRforLinux:Version11.1.0.6.0-ProductionSystemparameterfileis/home/oracle/product/11.1.0/db_1/network/admin/listener.ora
Logmessageswrittento/home/oracle/diag/tnslsnr/linux-34/listener/alert/log.xmlErrorlisteningon:(ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))Nolongerlisteningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux-34.site)(PORT=1521)))
TNS-12546:TNS:permissiondeniedTNS-12560:TNS:protocoladaptererrorTNS-00516:PermissiondeniedLinuxError:13:Permissiondenied
Listenerfailedtostart.Seetheerrormessage(s)above...
竟然报TNS-12546:TNS:permissiondenied
查看下/var/tmp/.oracle、/tmp/.oracle这两个目录的权限访问。
linux-34:~#ls-lrtd/tmp/.oracle
drwxrwxrwx2rootroot4096May916:01/tmp/.oracle
linux-34:~#ls-lrtd/var/tmp/.oracle
drwxr-xr-x2rootroot4096Oct1409:45/var/tmp/.oracle
原因应该就在这了,/var/tmp/.oracle是755权限,把它修改为777。viewplainprint?
linux-34:~#chmod-R777/var/tmp/.oracle
扩展阅读:oracle 监听无法启动
经常遇到oracle监听无法启动的情况,感觉很莫名其妙,遇到的多了,逐渐总结出来一些原因。
首先,在安装oracle的时候后,处于联网状态,而下次启动的时候是断网状态,会导致监听无法启动,反之亦然。
其次,主机名,ip发生变化也会导致监听无法启动。
解决办法,运行cmd输入lsnrctlstart查看错如信息
然后去E:\\oracle\\product\\10.2.0\\db_1\\NETWORK\\ADMIN路径下,修改
listener.ora中的HOST的值改成现在的机器名或IP地址,然后再启动监听,监听服务正常启动。
但由于不是很熟悉oracle,更改listener.ora有时候会引发别的问题。
我建议用如下方法,屡试不爽
1.cmd然后sqlplus/nolog在不登录情况下运行sqlplus2.connect/assysdba链接oracle3.shutdownimmediate关闭当前例程
4.用oracle自带工具NetConfiggurationAssistont删除先有监听然后从新创建一个监听
5.startupopen启动oracle历程
前天装好的Oracle,昨天突然不好用了,从Oracle的错误提示来看,是说TNS:nolistener,估计是某种服务没有启动,打开windows管理工具->服务,一看,有一个OracleOraHome90TNSListener这样的服务,和错误信息题是一致,基本就可以肯定是这个服务所引发的问题。再一看,该服务没有启动,遂手工启动,刷新后一看,该服务居然马上就自动关闭了。重试N次,结果一样。到Google搜索看看,没想到这还是一个普遍的问题,有一个人提出,把安装目录下的listener.ora打开察看。如:d:\\oracle\\ora90\\network\\admin\\listener.ora。打开该配置文件后发现如下一段配置信息:LISTENER=
(DESCRipTION_LIST=(DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=IBMThinkPad)(PORT=1521)))))
当看到这一行HOST=IBMThinkPad的时候,问题解决了。原来是由于几天装好Oracle后,又改了Windows的计算机名,而这个配置文件中记录的监听主机名还是原来的名称,这也就怪不得,OracleOraHome90TNSListener服务无法启动了,马上修改为现在的计算机名,再次启动OracleOraHome90TNSListener服务成功,PL/SQLDeveloper连接Oracle数据库成功,不能登陆故障排除。
资料引用:
tnslistener
、编辑$ORACLE_HOME/network/admin下的listener.ora文件为LISTENER=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=oracle7))(ADDRESS=(PROTOCOL=IPC)(KEY=PNPKEY))
(ADDRESS=(PROTOCOL=TCP)(Host=test)(Port=1521)))
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=
(GLOBAL_DBNAME=test.)
(ORACLE_HOME=/usr/oracle/app/oracle/product/7.3.4)(SID_NAME=oracle7)))
STARTUP_WAIT_TIME_LISTENER=0CONNECT_TIMEOUT_LISTENER=10TRACE_LEVEL_LISTENER=OFF
2、编辑$ORACLE_HOME/network/admin下的tnsnames.ora文件为:oracle7=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(Host=test)(Port=1521))(CONNECT_DATA=(SID=oracle7)))
然后修改hosts文件
、编辑$ORACLE_HOME/network/admin下的listener.ora文件为LISTENER=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=oracle7))(ADDRESS=(PROTOCOL=IPC)(KEY=PNPKEY))
(ADDRESS=(PROTOCOL=TCP)(Host=test)(Port=1521)))
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=
(GLOBAL_DBNAME=test.)
(ORACLE_HOME=/usr/oracle/app/oracle/product/7.3.4)(SID_NAME=oracle7)))
STARTUP_WAIT_TIME_LISTENER=0CONNECT_TIMEOUT_LISTENER=10TRACE_LEVEL_LISTENER=OFF
2、编辑$ORACLE_HOME/network/admin下的tnsnames.ora文件为:oracle7=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(Host=test)(Port=1521))(CONNECT_DATA=(SID=oracle7)))
然后修改hosts文件
友情提示:本文中关于《无法启动oracle监听处理》给出的范例仅供您参考拓展思维使用,无法启动oracle监听处理:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。