号外:监听器问题错误集中营欢迎您

linwaterbin 2012-12-11 01:12:48
大概刷了些帖子,csdn的朋友常会遇见Oracle客户端连接服务器端的一些监听器配置问题,当然不能囊括所有的连接异常。解决问题的关键在于方法与思路,而不是每种问题都有固定的答案。
现在搞这个活动,欢迎您贴出您的问题及其解决过程
论功行赏........
200分啊,分不够可以另外开贴赠送哦
期待您的加入
赠人玫瑰,手留余香

我先来吧,算是抛砖哈

① ORA-12560 错误总结
以win平台为例(linux一样的)
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,

启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务

面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SI

D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建

,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下

输set oracle_sid=XXXX,XXXX就是你的database SID


② ORA-12514错误总结

1)、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME

打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。同时检查sqlnet.ora,例如如果想要采用简便连接方式连接就需要在NAMES.DIRECTORY_PATH参数中添加EZCONNECT。

2)、 Ora-12514:TNS:监听程序当前无法识别链接描述符中请求的服务
该问题是由于缺少监听器的SID_LIST描述项引起的,采用netca进行配置的时候经常会遇到该问题,listener.ora示例如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/9.2.0.4)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = SAMPLE.COM)
(ORACLE_HOME = /opt/oracle/product/9.2.0.4)
(SID_NAME = SAMPLE)
))

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = tcy.com)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)))



③ ORA-12518错误总结
TNS:监听程序无法分发客户机连接
出现该报错有两个原因:在共享模式下是由于调度进程(dispatchers)太少,在独占模式下是由于进程数(proces ses)超过了数据库默认的最大进程数。解决步骤:
1、show parameter process查看数据库允许最大进程数
2、select count(*) from v$session;查看当前系统进程数
如果进程数不够,可通过扩大PGA来增大进程数:
alter system set workarea_size_policy=auto scope=both;
alter system set pga_aggregate_target=512m scope=both;

3、show parameter dispatchers查看调度进程数量
如果调度进程太少,则可执行:
alter system set dispatchers = '(protocol=tcp)(dispatchers=3)(service=oracle10xdb)';


④ ORA-12535: TNS: 操作超时
出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接


⑤ ORA-12154:
TNS: 无法处理服务名
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)里每项服务的首 行服务名称前不能有空格。

⑥ ORA-12500:
TNS: 监听程序无法启动专用服务器进程
对于Windows而言,没有启动Oracle实例服务
...全文
2420 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wainilxx2 2013-04-06
  • 打赏
  • 举报
回复
谢谢楼主分享。 但是我今天遇到的问题让我很费解,希望楼主及个大神们解决下。 一、listener.ora的配置如下。 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = CMSYS.lenovo) (SID_NAME = CMSYS) ) (SID_DESC = (GLOBAL_DBNAME = CMSYS.lenovo) (PROGRAM = extproc) (SID_NAME = PLSExtProc) (ORACLE_HOME = E:\myoracle\oracle\product\10.2.0\db_1) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = lenovo)(PORT = 1521)) ) 二、tnsnames.ora的配置如下 LISTENER = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = lenovo)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = CMSYS.lenovo) ) ) 三、我使用net manager进行测试。使用“system”时能正常连接数据库。但是使用“sys as sysdba”时就报了ORA 01017错误。 四、接着我用sqlplus进行测试。“system”和“sys as sysdba”两个数据库用户名都能正常连接数据库。 五、我再用我构建的pro*c工具进行测试,发现两个用户名都不能登陆呢, 报错如下 这里的“网络服务名”我试了两种,是因为这里我蒙了,我的数据库全名为“CMSYS.lenovo”,SID为“CMSYS”,我不知道到底该用哪个。 希望大家能解决我的问题,并纠正我的错误,谢谢
软件钢琴师 2012-12-17
  • 打赏
  • 举报
回复
这个怎么不置顶啊
BenChiM888 2012-12-12
  • 打赏
  • 举报
回复
引用 7 楼 java3344520 的回复:
这个版主第一次见到啊,
孤陋寡人了 丽萍兄。。
Cryking 2012-12-12
  • 打赏
  • 举报
回复
引用 楼主 linwaterbin 的回复:
大概刷了些帖子,csdn的朋友常会遇见Oracle客户端连接服务器端的一些监听器配置问题,当然不能囊括所有的连接异常。解决问题的关键在于方法与思路,而不是每种问题都有固定的答案。 现在搞这个活动,欢迎您贴出您的问题及其解决过程 论功行赏........ 200分啊,分不够可以另外开贴赠送哦 期待您的加入 赠人玫瑰,手留余香 我先来吧,算是抛砖哈 ① ORA-12560 错误总……
给版主增加一个 ORA-12170: TNS: 连接超时的情况 如果用户密码中包含@这个字符,用sqlplus登录的时候会提示ORA-12170
软件钢琴师 2012-12-12
  • 打赏
  • 举报
回复
引用 6 楼 linwaterbin 的回复:
引用 4 楼 l359122505 的回复: 今天突然发现用pl-sql客户端连接数据库速度好慢,得半分钟之久,以前都好着。。但是用command line连接是正常的,很快,是怎么回事啊? pl/sql所引用的tnsnames.ora里有没有配置其他无效IP的服务器地址?
这个置顶
繁华终归落尽 2012-12-11
  • 打赏
  • 举报
回复
引用 6 楼 linwaterbin 的回复:
引用 4 楼 l359122505 的回复: 今天突然发现用pl-sql客户端连接数据库速度好慢,得半分钟之久,以前都好着。。但是用command line连接是正常的,很快,是怎么回事啊? pl/sql所引用的tnsnames.ora里有没有配置其他无效IP的服务器地址?
有配置一些,但是我用pl/sql连接其他的数据库都没有问题啊,就是连那一台是这样,那台机器本地连也很慢,但是command line又是正常的
iqlife 2012-12-11
  • 打赏
  • 举报
回复
这个版主第一次见到啊,
linwaterbin 2012-12-11
  • 打赏
  • 举报
回复
引用 4 楼 l359122505 的回复:
今天突然发现用pl-sql客户端连接数据库速度好慢,得半分钟之久,以前都好着。。但是用command line连接是正常的,很快,是怎么回事啊?
pl/sql所引用的tnsnames.ora里有没有配置其他无效IP的服务器地址?
fw0124 2012-12-11
  • 打赏
  • 举报
回复
楼主好贴。写到博客里面吧
繁华终归落尽 2012-12-11
  • 打赏
  • 举报
回复
今天突然发现用pl-sql客户端连接数据库速度好慢,得半分钟之久,以前都好着。。但是用command line连接是正常的,很快,是怎么回事啊?
linwaterbin 2012-12-11
  • 打赏
  • 举报
回复
引用 1 楼 taiguang 的回复:
斌仔好文章
钢琴师傅
linwaterbin 2012-12-11
  • 打赏
  • 举报
回复
⑦ ORA-12505 TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was:192.168.1.1:1521:bbcd 这个问题一般发生在利用JDBC连接数据库时,这里需要注意,上面的bbcd的位置应该填写sid_name,一般JDBC的配置格式为jdbc:oracle:thin:@IP/HOSTNAME:PORT:SID例如jdbc:oracle:thin:@145.**.**.**:1521:z***db2 ⑧ TNS-12537, TNS-12560, TNS-00507 Linux Error: 29: Illegal seek error When Starting the Listener 在linux,Unix底下如果/etc/hosts文件配置不正确会出现如下报错 $ lsnrctl start LSNRCTL for HPUX: Version 10.1.0.4.0 - Production on 01-JUL-2005 10:16:59 Copyright (c) 1991, 2004, Oracle. All rights reserved. Starting /db02/product/10.1/bin/tnslsnr: please wait... TNS-12537: TNS:connection closed TNS-12560: TNS:proto adapter error TNS-00507: Connection closed HPUX Error: 29: Illegal seek 解决方式: 检查该用户是否有/etc/hosts文件的访问权限,检查/etc/hosts文件下是否包含 127.0.0.1 localhost.localdomain localhost
软件钢琴师 2012-12-11
  • 打赏
  • 举报
回复
斌仔好文章

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧