当前位置:  数据库>oracle

Oracle监听器启动故障TNS-00517解决

    来源: 互联网  发布时间:2017-06-04

    本文导语: Oracle安装是一个复杂的过程,在Linux和AIX等操作系统版本上,进行各种准备的过程和时间经常是超过安装程序、创建数据库本身。而且,一旦有配置项出现错误,在后面Oracle安装和运行中就可能出现意想不到的问题。 监听器、TN...

Oracle安装是一个复杂的过程,在Linux和AIX等操作系统版本上,进行各种准备的过程和时间经常是超过安装程序、创建数据库本身。而且,一旦有配置项出现错误,在后面Oracle安装和运行中就可能出现意想不到的问题。
 
监听器、TNS连接通常是Oracle初学者一个不容易理解的关键。但是,在实际配置过程中如果存在问题,就引起Oracle无法连接的难题。本篇介绍一个监听器无法启动报错TNS-00517的小故障。

1、问题说明

进行产品测试,在实验环境上尝试安装最新的11.2.0.4版本。操作系统环境为Red Hat 6.5。

[oracle@SimpleLinux ~]$ uname -r

2.6.32-431.el6.i686

[oracle@SimpleLinux ~]$ cat /etc/RedHat-release

Red Hat Enterprise Linux Server release 6.5 (Santiago)

使用dbca安装完成数据库后,没有明显报错痕迹。检查数据库实例启动正常,也可以支持操作系统验证登陆。

[oracle@SimpleLinux ~]$ ps -ef | grep pmon

oracle    5851    1  0 12:48 ?        00:00:00 ora_pmon_ora11g

oracle  11778 11747  0 12:56 pts/0    00:00:00 grep pmon

监听程序状态查询失效,处在不能启动状态。

[oracle@SimpleLinux ~]$ lsnrctl status

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 01-APR-2014 12:56:53

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SimpleLinux)(PORT=1521)))
 
TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

  Linux Error: 111: Connection refused

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

  Linux Error: 111: Connection refused

lsnrctl是监听器操纵平台工具,status会去尝试连接运行的监听程序检查状态。从结果看,监听器没有启动。注意:一般而言,Oracle创建数据库之后,就会自动启动一个监听器。最新的Oracle版本会用默认的方式运行监听器,TNS_ADMIN目录中通常没有tnsnames.ora、listener.ora和sqlnet.ora文件。
 
启动监听器,报错。

[oracle@SimpleLinux ~]$ lsnrctl start

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 01-APR-2014 12:57:06

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

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

 

TNSLSNR for Linux: Version 11.2.0.4.0 - Production

System parameter file is /u01/app/oracle/network/admin/listener.ora

Log messages written to /u01/app/diag/tnslsnr/SimpleLinux/listener/alert/log.xml
 
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SimpleLinux)(PORT=1521)))
 
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SimpleLinux)(PORT=1521)))
 
TNS-12547: TNS:lost contact

 TNS-12560: TNS:protocol adapter error

  TNS-00517: Lost contact

  Linux Error: 104: Connection reset by peer

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

TNS-12547: TNS:lost contact

 TNS-12560: TNS:protocol adapter error

  TNS-00517: Lost contact

  Linux Error: 104: Connection reset by peer

2、问题分析

使用netca重建监听程序,也没有解决问题。查看listener.ora文件如下:

 

[oracle@SimpleLinux admin]$ cat listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/network/admin/listener.ora
 
# Generated by Oracle configuration tools.

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

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

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

ADR_BASE_LISTENER = /u01/app

在笔者之前的文章《监听器listener.ora中HOST参数配置》()中,讨论过HOST参数设置IP地址和主机名称的差异。如果设置IP地址,监听程序只会驻留在指定的IP地址上。如果服务器有多个IP地址,其他IP地址是不能作为监听地址的。
 
如果设置的是hostname,那么Oracle就会根据网络配置,解析hostname对应的所有IP地址,并且绑定在所有的IP地址上进行连接。

从host参数配置上,指定的名称SimpleLinux解析最直接手段是/etc/hosts文件。

 

[oracle@SimpleLinux admin]$ cat /etc/hosts

127.0.0.1  SimpleLinux SimpleLinux.localdomain localhost4 localhost4.localdomain4
 
::1        SimpleLinux SimpleLinux.localdomain localhost6 localhost6.localdomain6
 
192.168.0.100 SimpleLinux SimpleLinux.localdomain

 

[root@SimpleLinux ~]# ifconfig -a

eth0      Link encap:Ethernet  HWaddr 08:00:27:48:5C:18 

          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fe48:5c18/64 Scope:Link

       

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

 

直观看没有什么问题,两个监控地址都在文件中。修改下hosts文件更加清晰,路径IP解析也没有问题,网络连接也没有问题。

 

[root@SimpleLinux ~]# vi /etc/hosts

 

192.168.0.100 SimpleLinux SimipleLinux.localdomain

127.0.0.1  SimpleLinux SimpleLinux.localdomain

::1        SimpleLinux SimpleLinux.localdomain

 

[root@SimpleLinux ~]# ping SimpleLinux

PING SimpleLinux (192.168.0.100) 56(84) bytes of data.

64 bytes from SimpleLinux (192.168.0.100): icmp_seq=1 ttl=64 time=0.056 ms

64 bytes from SimpleLinux (192.168.0.100): icmp_seq=2 ttl=64 time=0.138 ms

64 bytes from SimpleLinux (192.168.0.100): icmp_seq=3 ttl=64 time=0.132 ms

 

启动尝试。

 

[oracle@SimpleLinux ~]$ lsnrctl start

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 01-APR-2014 13:09:46

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

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

(篇幅原因,有省略……)

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SimpleLinux)(PORT=1521)))
 
TNS-12547: TNS:lost contact

 TNS-12560: TNS:protocol adapter error

  TNS-00517: Lost contact

  Linux Error: 104: Connection reset by peer

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

TNS-12547: TNS:lost contact

 TNS-12560: TNS:protocol adapter error

  TNS-00517: Lost contact

  Linux Error: 104: Connection reset by peer

 

问题依旧,尝试弃用hostname,直接使用IP地址连接。

 

[oracle@SimpleLinux admin]$ cp listener.ora listener.ora.bk

[oracle@SimpleLinux admin]$ vi listener.ora

 

# listener.ora Network Configuration File: /u01/app/oracle/network/admin/listener.ora
 
# Generated by Oracle configuration tools.

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

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

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

 

启动尝试,故障依然。

 

[oracle@SimpleLinux admin]$ lsnrctl start

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 01-APR-2014 13:11:10

 

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

 

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

 

TNSLSNR for Linux: Version 11.2.0.4.0 - Production

System parameter file is /u01/app/oracle/network/admin/listener.ora

Log messages written to /u01/app/diag/tnslsnr/SimpleLinux/listener/alert/log.xml
 
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

Listening on:

TNS-12547: TNS:lost contact

 TNS-12560: TNS:protocol adapter error

  TNS-00517: Lost contact

  Linux Error: 104: Connection reset by peer

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

TNS-12547: TNS:lost contact

 TNS-12560: TNS:protocol adapter error

  TNS-00517: Lost contact

  Linux Error: 104: Connection reset by peer

 

更多详情见请继续阅读下一页的精彩内容:


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于oracle816数据库启动故障问题
  • Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除
  • Oracle 11G 无法连接到数据库实例故障排除
  • 一次Oracle故障处理过程
  • Oracle数据库系统紧急故障处理方法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • ORACLE数据库常用字段数据类型介绍
  • 网间Oracle的连接,远程连接Oracle服务器??
  • Oracle 12c的九大最新技术特性介绍
  • .net/c#/asp.net iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,