【环境参数】
Host OS:Win7 32bit
Client OS:Oracle Enterprise Linux 5/ CentOS5.5
虚拟机:VMware 10.0..1
Oracle版本:Oracle 11g R2
第三方客户端:Oracle SQL Developer 3.0.04
【障碍再现】
在Linux平台上,安装完Oracle后,重启Linux服务器,之后,通过dbstart命令启动Oracle服务,之后直接就通过远程客户端Oracle SQL Developer 3.0.04或者远程SQL*Plus客户端连接Oracle服务器,却发生错误。
(1)使用第三方工具Oracle SQL Developer登录时,出现的现象。
(2)使用远程客户端的SQLPlus登录时,出现的现象。
Oracle 远程登录 ORA-12170: TNS:Connect timeout occurred。
【原因分析】
1、dbstart命令的作用仅仅是启动Oracle服务进程,并没有启动Oracle listener,若此时,用户要通过远程客户端连接服务器端的Oracle服务,则会报错。
2、Listener的作用:
(1)它负责管理 Oracle 数据库和远程客户端(非服务器端上的客户端)之间的通讯,它在一个特定的网卡端口(默认是TCP 1521端口)上监听连接请求,并将连接转发给数据。
(2)监听程序是一个驻留在数据库服务器上的独立进程(因而只能在服务器端配置监听程序),用来监听所有“要求连接到数据库服务的客户机端请求”,并管理器通信量。
(3)一个服务器可以有多个监听程序,分别监听不同协议和端口。这样可以平衡一个监听程序的工作负载,降低其失败对工作的影响,从而提高服务器的可靠性。
(4)监听器的作用:只负责建立客户端与数据库服务器端的连接,并不负责客户端与数据库服务器端的通信。监听客户端与服务器的连接,只要客户端连接上了,之后的操作就与监听无关了。
【解决方案】
将Oracle Listener重启即可。
【具体步骤】
1、进入lsnrctl配置程序并且查看当前监听器的状态
[oracle@OELHost ~]$ lsnrctl LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 30-JAN-2015 21:28:41 Copyright (c) 1991, 2009, Oracle. All rights reserved. Welcome to LSNRCTL, type "help" for information.
LSNRCTL> status Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=OELHost)(PORT=1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused //说明Listener没有启动,因此,Oracle无法处理远程客户端的连接请求。 LSNRCTL> |
2、启动监听器
LSNRCTL> start Starting /u01/oracle/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /u01/oracle/network/admin/listener.ora Log messages written to /u01/diag/tnslsnr/OELHost/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=OELHost)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=OELHost)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 30-JAN-2015 21:29:21 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/oracle/network/admin/listener.ora Listener Log File /u01/diag/tnslsnr/OELHost/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=OELHost)(PORT=1521))) The listener supports no services The command completed successfully //说明监听器已经启动成功。 LSNRCTL> |
3、查看监听器启动之后的状态。
LSNRCTL> status Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=OELHost)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 30-JAN-2015 21:29:21 Uptime 0 days 0 hr. 2 min. 49 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/oracle/network/admin/listener.ora Listener Log File /u01/diag/tnslsnr/OELHost/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=OELHost)(PORT=1521))) Services Summary... Service "Instance01XDB" has 1 instance(s). Instance "Instance01", status READY, has 1 handler(s) for this service... Service "orclDb01" has 1 instance(s). Instance "Instance01", status READY, has 1 handler(s) for this service... The command completed successfully //通过再次验证,说明监听器已经启动成功。 LSNRCTL> |
4、再次通过远程客户端连接Oracle数据库,此时就可以成功连接。
------------------The End Of Story--------------------
By zjrodger
读者如要转载,请标明出处和作者名,谢谢。
地址01:http://space.itpub.net/25851087
地址02:http://www.cnblogs.com/zjrodger/
地址03:http://blog.csdn.net/zjrodger
作者名:zjrodger
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25851087/viewspace-1421509/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25851087/viewspace-1421509/