$ lsnrctl status
LSNRCTL for IBM/AIX RISC System/6000: Version 9.2.0.1.0 – Production on 21-JAN-2011 10:59:25
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=aixsvr)(PORT=1521))) TNS-12618: TNS:versions are incompatible
上述报错是因为端口号1521已经被另一个监听使用。于是修改该监听的listener.ora文件,将端口改为1555. vi listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = aixsvr)(PORT = 1555)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) ) )
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = orcl) (ORACLE_HOME = /ora9i/app/oracle) )) $ lsnrctl reload
LSNRCTL for IBM/AIX RISC System/6000: Version 9.2.0.1.0 – Production on 21-JAN-2011 10:55:39
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=aixsvr)(PORT=1555))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener IBM/AIX RISC System/6000 Error: 79: Connection refused Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener IBM/AIX RISC System/6000 Error: 79: Connection refused
一开始的思路如下: IBM/AIX RISC System/6000 Error: 79: Connection refused错误是不是表示1555端口未开放?用telnet测试: telnet aixsvr 1555 $ telnet aixsvr 1555 Trying… telnet: connect: A remote host refused an attempted connect operation. $ telnet aixsvr 1521 Trying… Connected to aixsvr. Escape character is '^]'. 看到以上结果就想到是1555端口的问题,实际上这个思路是错误的,因为单纯的说端口开不开放是没有意义的,端口必须与程序或服务结合起来才有意义。即要先启动1555上的监听才能使用telnet aixsvr 1555的方式测试该端口是否可以连接。没有服务或程序支持的端口是无法连接的 解决办法: 修改了listener.ora的端口,使用reload,可能因为内存中有相关信息,导致了reload失败,修改一下监听的名字,再修改回来,然后重启监听,使用lsnrctl stop和lsnrctrl start就可以了。
