我的Oracle侦听器有问题。我在RHEL6上运行,突然侦听器停止工作。我可以sqlplus / as syadmin
,并且可以在终端上正常工作。
每当我运行命令lsnrctl status
,lsnrctl start
,lsnrctl 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 status
,lsnrctl start
,lsnrctl 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
答案 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