Oracle Listener停止工作

时间:2018-06-24 20:12:52

标签: oracle

我的Oracle侦听器有问题。我在RHEL6上运行,突然侦听器停止工作。我可以sqlplus / as syadmin,并且可以在终端上正常工作。

每当我运行命令lsnrctl statuslsnrctl startlsnrctl stop时,都会出现以下错误。

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dev32018)(PORT=1521)))
TNS-12538: TNS:no such protocol adapter
TNS-12560: TNS:protocol adapter error
TNS-00508: No such protocol adapter..

我可以ping dev32018并成功。并在下面的日志文件中显示消息。

 type=UNKNOWN level=16 host_id=dev32018
 host_addr=10.68.11.186
 TNS-01150: The address of the specified listener name is incorrect
 TNS-01153: Failed to process string: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dev32018)(PORT=1521)))

一切正常,没有对listener.ora或任何配置文件进行任何修改,问题突然发生了,我们重新启动了计算机,重新启动了网络,但仍然没有用。 任何可以帮助解决问题的人。

我的Oracle侦听器有问题。我在RHEL6上运行,突然侦听器停止工作。我可以sqlplus / as syadmin,并且可以在终端上正常工作。

每当我运行命令lsnrctl statuslsnrctl startlsnrctl stop时,都会出现以下错误。

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dev32018)(PORT=1521)))
TNS-12538: TNS:no such protocol adapter
TNS-12560: TNS:protocol adapter error
TNS-00508: No such protocol adapter..

我可以ping dev32018并成功。并在下面的日志文件中显示消息。

 type=UNKNOWN level=16 host_id=dev32018
 host_addr=10.68.11.186
 TNS-01150: The address of the specified listener name is incorrect
 TNS-01153: Failed to process string: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dev32018)(PORT=1521)))

一切正常,没有对listener.ora或任何配置文件进行任何修改,问题突然发生了,我们重新启动了计算机,重新启动了网络,但仍然没有用。 任何可以帮助解决问题的人。

根据评论中的要求更新

 tnsnames.ora Network Configuration File: /app1/oracle/product/11.2.0.4/db_1/network/admin/tnsnames.ora
 Generated by Oracle configuration tools.

DEV32018 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dev32018)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dev32018.corp.ae)
    )
  )

DEV3DB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dev32018)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dev32018.corp.ae)
    )
  )

Listener.ora

 listener.ora Network Configuration File: /app1/oracle/product/11.2.0.4/db_1/network/admin/listener.ora
 Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dev32018)(PORT = 1521))
    )
  )

LISTENER2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dev32018)(PORT = 1522))
    )
  )
ADR_BASE_LISTENER = /app1/oracle

---------------------------------nslookup 10.68.11.186------------
oracle@dev32018 admin]$ nslookup 10.68.11.186
Server:         10.51.156.161
Address:        10.51.156.161#53

** server can't find 186.11.68.10.in-addr.arpa.: NXDOMAIN

--------------------------------nslookup dev32018---------------------------

[root@dev32018 etc]# nslookup dev32018
;; Got SERVFAIL reply from 10.51.156.161, trying next server
;; Got SERVFAIL reply from 10.55.155.32, trying next server
Server:         10.37.164.207
Address:        10.37.164.207#53

** server can't find dev32018: SERVFAIL

-------Telnet
[root@dev32018 etc]# telnet dev32018 1521
Trying 10.68.11.186...
telnet: connect to address 10.68.11.186: Connection refused

2 个答案:

答案 0 :(得分:1)

我通过在oracle home / bin目录中运行脚本“ relink”解决了该问题 $ ORACLE_HOME / bin 重新链接所有

完成大约30秒后,侦听器命令开始工作。 我不确定问题出在哪里以及此脚本已纠正了什么。 谢谢大家

答案 1 :(得分:0)

确保您没有在Oracle用户中运行lsnrctl status

请在终端中尝试或以Oracle USER身份登录。

$ su # su - oracle $ whoami

在这一点上,whoami应该会给您 Oracle ,您可以运行lsnrctl status

然后监听器将立即开始:D

您可以制作一个sh文件并将其添加到etc/init.d,以便在再次启动计算机时自动运行该文件。

更新

您将需要在Oracle用户中运行下一个命令。

. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

这是针对Oracle XE的,您可以在Oracle版本的安装文档中找到此特定命令。接下来,您将可以运行lsnrctl status