oracle服务器无法连接,报错TNS:tns:lost contact

本文介绍了解决Oracle 11g R2中监听器无法识别服务的问题,通过检查监听器状态、手动注册服务及修改listener.ora配置文件等步骤最终解决了远程连接时出现的ORA-12514错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

监听器 The listener supports no services 问题解决方法



ORACLE版本:11gR2
开启监听器,远程连接报错:
ORA-12514: TNS:linstener does not currently know of service requested in connect descriptor
解决问题思路:
查看监听器状态,关闭后重新启动监听器
[oracle@rhel5 admin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 14-AUG-2012 19:20:55

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

Starting /u01/app/oracle/product/11.2/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/rhel5/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.11.210)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.11.210)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                14-AUG-2012 19:20:55
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/rhel5/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.11.210)(PORT=1521)))
The listener supports no services
The command completed successfully

结果发现错误信息:The listener supports no services

查看数据库service_name
sys@ORCL> show parameter service

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      orcl

手工注册有时能够解决问题:
sys@ORCL> alter system register;
System altered.

查看监听器状态:
[oracle@rhel5 admin]$ lsnrctl start

注册成功:
[oracle@rhel5 admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 14-AUG-2012 20:23:26

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel5.oraclelinux.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                14-AUG-2012 20:22:49
Uptime                    0 days 0 hr. 0 min. 36 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/rhel5/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel5.oraclelinux.com)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

注册依然失败:
[oracle@rhel5 admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 14-AUG-2012 20:18:02

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel5.oraclelinux.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                14-AUG-2012 20:17:45
Uptime                    0 days 0 hr. 0 min. 17 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/rhel5/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel5.oraclelinux.com)(PORT=1521)))
The listener supports no services
The command completed successfully

依然有错误信息:The listener supports no services

重建监听器:
问题依旧

查看LISTENER内容:
[oracle@rhel5 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rhel5.oraclelinux.com)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

在LISTENER里添加内容:
SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
                      #BEQUEATH CONFIG
         (GLOBAL_DBNAME=orcl)
         (SID_NAME=orcl)
         (ORACLE_HOME=/u01/app/oracle/product/11.2)
                      #PRESPAWN CONFIG
        (PRESPAWN_MAX=20)
        (PRESPAWN_LIST=
          (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
        )
       )
      )

重启监听器,问题解决。


"ora-12547: tns:lost contact" 是一种Oracle数据库中的错误,通常位于使用Mac的Docker容器运行Oracle数据库时出现。这个错误表示Docker容器无法Oracle数据库建立联系。 出现这个错误的原因可能有以下几种: 1. 网络配置问题:确保容器和宿主机之间的网络配置正确。可以尝试检查Docker网络设置,并确保容器可以正确访问Oracle数据库所在的主机。 2. TNS配置问题:检查容器中的TNS配置文件(通常为tnsnames.ora)是否正确。确保其中的连接字符串、主机名、端口号等信息正确匹配Oracle数据库的实际设置。 3. Oracle监听器问题:确认Oracle监听器是否正在运行,并监听着正确的端口。可以尝试在容器中执行`lsnrctl status`命令来检查监听器的状态。 4. 容器资源限制:如果容器的资源限制过低,可能导致无法正常启动Oracle数据库。可以尝试增加容器的内存、CPU等资源限制,以确保数据库能够正常启动。 解决这个问题的方法可以尝试以下几种: 1. 检查网络配置:确保容器和宿主机之间的网络配置正确,容器可以访问到Oracle数据库所在的主机。 2. 检查TNS配置:确认容器中的TNS配置文件中的连接信息正确。可以尝试手动连接数据库,确保连接字符串、主机名、端口号等信息正确。 3. 检查监听器:确保Oracle监听器正在运行,并监听着正确的端口。可以尝试重启监听器,或者在容器中重新配置监听器。 4. 调整资源限制:增加容器的资源限制,确保能够正常启动Oracle数据库。可以尝试给容器分配更多的内存、CPU等资源。 总而言之,解决这个问题需要检查网络配置,确认TNS配置和监听器设置正确,并适当调整容器的资源限制。通过这些步骤,应该能够解决"ora-12547: tns:lost contact"错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值