Oracle监听器无法动态注册实例

时间:2022-07-14 08:34:58

Oracle监听器无法动态注册实例

1.      检查listener.ora文件配置,没有问题

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST =hostname)(PORT= 1521))

    )

  )

2.      检查/etc/hosts文件没有问题

3.      检查参数local_listener

 

SQL> show parameter local_listener                       

NAME                                 TYPE

------------------------------------------------------

VALUE

------------------------------

local_listener                       string

(DESCRIPTION=(ADDRESS=(PROTOCO

L=TCPY) (HOST =10.41.10.41)(PORT= 1521))

发现Host不是hostname对应的ip地址

4.      修改local_listener

Alter system set local_listener=’(DESCRIPTION=(ADDRESS=(PROTOCO

L=TCPY) (HOST =hostname)(PORT = 1521))’ ;

 

5.      监听reload实例可以正常注册问题解决

lsnrctl reload


监听注册问题解决后连接数据库又报错

TNS-12543: TNS:destination host unreachable

1.              验证发现本机sqlplus@服务名连接是没有问题的,其他客户端机器连接报错TNS-12543,怀疑是防火墙的问题

2.              尝试直连接,还是报了同样的错误。

>  sqlplus n1/n1@172.19.198.51:1521/oracl

SQL*Plus:Release 11.2.0.2.0 Production on Tue Apr 813:54:23 2014

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

ERROR:

ORA-12543: TNS:destination host unreachable

3.              验证是不是1521端口被限制了

# telnet xx.xx.xx.xx 1521
Trying...
^C# (如果没有响应说明有问题)
但是那台机器的telnet服务没打开

4.              用strace 跟踪tnsping

strace -o a.txt tnsping orcl

getsockopt(4, SOL_SOCKET, SO_SNDBUF, 0x7fffdfeec98c, 0x7fffdfeec988) = -1 EBADF (Bad file descriptor)
getsockopt(4, SOL_SOCKET, SO_RCVBUF, 0x7fffdfeec98c, 0x7fffdfeec988) = -1 EBADF (Bad file descriptor)
lseek(3, 39936, SEEK_SET)               = 39936
read(3, "\16\0\3610\0\0\\\0\3630\0\0\231\0\3640\0\0\263\0\3650\0\0\307\0\3660\0\0\345\0"..., 512) = 512
write(1, "TNS-12535: TNS:operation timed o"..., 35) = 35

说明机器网络有问题

5.           把服务器的防火墙关闭,再次登录问题解决