通过11.2监听连接9.2数据库报错ORA-12537

在一个Linux 64位平台上,安装了11.2版本和9.2版本两个数据库,启动11.2的监听,尝试连接9.2的数据库报错ORA-12537

 

 

详细的错误信息如下:

[oracle@bjtest admin]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 1 18 18:31:37 2010

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> conn ndmain/ndmain@172.25.198.230/bjtrade
ERROR:
ORA-12537: TNS:
连接关闭


SQL> conn ndmain/ndmain@172.25.198.230/test112
ERROR:
ORA-01017: invalid username/password; logon denied

连接11.2的数据库没有问题,这里报错是由于密码不正确,但是网络连接显然是正确的。

ORA-12537: TNS:connection closed
Cause: "End of file" condition has been reached; partner has disconnected.
Action: None needed; this is an information message.

Oracle的错误文档的说明非常的不靠谱,看来只能查询METALINK了。发现metalink上有不少和ORA-12537有关的bug,但是根据这些描述进行设置后,问题无法解决:

[oracle@bjtest admin]$ pwd
/data/oracle/product/11.2/network/admin
[oracle@bjtest admin]$ more listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /opt/oracle/product/9.2)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (ORACLE_HOME = /opt/oracle/product/9.2)
      (SID_NAME = bjtrade)
      (ENVS = "LD_LIBRARY_PATH_64=/opt/oracle/product/9.2/lib")
    )
    (SID_DESC =
      (GLOBAL_DBNAME = test112)
      (ORACLE_HOME = /data/oracle/product/11.2)
      (SID_NAME = test112)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
      )
    )
  )

在监听配置文件listener.ora中增加LD_LIBRARY_PATHLD_LIBRARY_PATH_64ENVS参数,问题依旧。

如果尝试使用9.2的监听,则9i的连接正常,11g连接报错:

SQL> conn test/test@172.25.198.230/BJTRADE
已连接。
SQL> conn test/test@172.25.198.230/test112
ERROR:
ORA-12500: TNS:
监听程序无法启动专用服务器进程

对应的监听信息为:

[oracle@bjtest ~]$ lsnrctl status

LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 19-1 -2010 03:58:59

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
LISTENER
STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for Linux: Version 9.2.0.4.0 - Production
启动日期                  18-1 -2010 19:58:21
正常运行时间              0 8 小时 0 37
跟踪级别                  off
安全性                    OFF
SNMP                      OFF
监听器参数文件          /opt/oracle/product/9.2/network/admin/listener.ora
监听器日志文件          /opt/oracle/product/9.2/network/log/listener.log
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bjtest)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bjtest)(PORT=8080))(Presentation=HTTP)(Session=RAW))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bjtest)(PORT=2100))(Presentation=FTP)(Session=RAW))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
 
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "ZHIFU" 包含 1 个例程。
 
例程 "ZHIFU", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "bjtest" 包含 2 个例程。
 
例程 "bjtest", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
 
例程 "bjtest", 状态 READY, 包含此服务的 1 个处理程序...
服务 "bjtestXDB" 包含 1 个例程。
 
例程 "bjtest", 状态 READY, 包含此服务的 1 个处理程序...
服务 "bjtrade" 包含 2 个例程。
 
例程 "bjtrade", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
 
例程 "bjtrade", 状态 READY, 包含此服务的 1 个处理程序...
服务 "bjtradeXDB" 包含 1 个例程。
 
例程 "bjtrade", 状态 READY, 包含此服务的 1 个处理程序...
服务 "test112" 包含 1 个例程。
 
例程 "test112", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

使用11.2的监听,9.2数据库无法访问,使用9.2的监听,11.2的数据库又无法访问,看来只能使用双监听了,修改11.2的监听,使其监听1522端口:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1522))
      )
    )
  )

[oracle@bjtest admin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-1 -2010 04:02:48

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

启动/data/oracle/product/11.2/bin/tnslsnr: 请稍候...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系统参数文件为/data/oracle/product/11.2/network/admin/listener.ora
写入/data/oracle/diag/tnslsnr/bjtest/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bjtest)(PORT=1522)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))
LISTENER
STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production
启动日期                  19-1 -2010 04:02:48
正常运行时间              0 0 小时 0 0
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /data/oracle/product/11.2/network/admin/listener.ora
监听程序日志文件          /data/oracle/diag/tnslsnr/bjtest/listener/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bjtest)(PORT=1522)))
服务摘要..
服务 "PLSExtProc" 包含 1 个实例。
 
实例 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "bjtrade" 包含 1 个实例。
 
实例 "bjtrade", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "test112" 包含 1 个实例。
 
实例 "test112", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

SQL> conn test/test@172.25.198.230/BJTRADE
已连接。
SQL> conn test/TEST@172.25.198.230:1522/test112
已连接。

看来Oracle的监听还存在不少多版本兼容问题。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-625848/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-625848/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值