oracle 启动监听 报“监听程序不支持服务” 解决
来源:互联网 发布:电气设备市场数据 编辑:程序博客网 时间:2024/05/29 12:55
今天安装了oracle后,启动监听,报错如下:
启动tnslsnr: 请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
写入E:\oracle\product\10.2.0\db_2\network\log\listener.log的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=win2003-64Template)(PORT=1521)))
正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期 25-3月 -2013 14:30:30
正常运行时间 0 天 0 小时 0 分 1 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序日志文件 E:\oracle\product\10.2.0\db_2\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=win2003-64Template)(PORT=1521)))
监听程序不支持服务
命令执行成功
服务端报监听程序不支持服务,那就把焦点放在listener.ora文件上来。listener.ora是oracle服务器端的网络配置文件,oracle根据它来配监听服务。它接受远程对数据库的申请,并转交给oracle的服务进程。出现这个问题的可能原因是文件中没有增加那个配置。
于是检查了一下 E:\oracle\product\10.2.0\db_2\network\Admin文件夹,发现果然是没有listener.ora文件。难道我迷迷糊糊没有建立监听文件,直接去新建了本地net配置?先不管三七二十一,加上listener.ora。添加的内容如下,这个跟通过Net Configuration Assistant新建监听文件的内容是一样的:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_2)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = win2003-64Template)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
顺便复习一下listener.ora的作用:在这个文件中一般我们会看到两个参数
1)参数LISTENER 定义了 监听“LISTENER” 的 监听协议地址(listening protocol address)
格式例子:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = CHINA-E24EA7C0A)(PORT = 1521))
)
)
2)参数SID_LIST_LISTENER 用于提供 监听“LISTENER” 所能够静态支持的服务信息。
而且,如果使用EM(Oracle Enterprise Manager)去管理数据库的话,这个参数是必须的。
格式例子:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = c:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
上面看到PLSExtProc,PLSExtProc不是oracle实例,是pl/sql external procdure 的意思,就是在pl/sql中调用外部语句,如c,java写的过程。这个里面的配置,是让监听器产生extproc agent,实际上就是一个extproc进程,用于为external procedure 服务。
添加listener.ora好了,再次启动。好了,这次启动成功,出现下面界面:
看到只启动了PLSExtProc,而我们新建的实例orcl却没有起来。这样其它计算机使用pl/sql连接的话,会出现“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”。当然原因还是在于listener.ora。一般新建监听之后,listener.ora中会有相应的配置,但不知道为什么我在上面的操作中也新建了监听,却没有自动生成。那我修改SID_LIST_LISTENER 手动添加以下内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_2)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_2)
(GLOBAL_DBNAME= orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = win2003-64Template)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
OK,再试一次。成功。
虽然可能是很简单的问题,但是还是从中了解了listener.ora的作用,而且,侧面反映出我装oracle的时候心不在焉啦啦!!不过,若非心不在焉,怎么能学会在发现问题的时候怎么排查呢~以后再出现监听方面的问题,就知道从何下手了。
0 0
- oracle 启动监听 报“监听程序不支持服务” 解决
- (转)oracle 启动监听 报“监听程序不支持服务” 解决
- 监听程序不支持服务
- ORACLE:重启后监听报错服务不能启动解决办法
- oracle 监听启动失败,报错无监听程序
- Oracle监听服务无法启动
- Oracle--启动监听及服务
- oracle 报无监听程序
- Oracle启动服务后 报 :ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- Linux下启动和关闭Oracle服务和监听程序
- Linux下启动Oracle服务和监听程序
- Linux下启动Oracle服务和监听程序
- Linux下启动Oracle服务和监听程序(基础知识)
- [转]Linux下启动Oracle服务和监听程序
- Linux下启动Oracle服务和监听程序(基础知识)
- Linux下启动Oracle服务和监听程序
- linux下启动oracle服务和监听程序
- Linux下启动Oracle服务和监听程序
- 判断一个链表中是否含有环
- Fragment为载体可自动布局的CardView(GitHub上写开源项目初体验)
- grep命令用法举例
- Go学习笔记:严格的数组
- 看好你的门-攻击数据存储区(3)-攻击PreparedStatement的执行
- oracle 启动监听 报“监听程序不支持服务” 解决
- 用C读取INI配置文件
- jquery加载js资源时不能从cache获取的解决方式
- LNMP搭建(Ubuntu10.04+Nginx+PHP-FPM)
- 齐博CMS变量覆盖漏洞exp
- ORA-12560: TNS: 协议适配器错误
- Python连接Mysql错误解析
- cocos2dx c++调用java思想
- 网络编程CFSocketRef