关于Oracle本地连接出现与监听有关的问题的解决方法探讨

监听的作用:

用于应用桌面即用户与数据库服务器建立连接的媒介,客户端发送连接请求,监听识别请求并建立客户端与服务器的连接后,监听的使命并完成了。也就是说,在建立客户端与服务器的连接后,监听可以关闭了。

Oracle连接出现常见的几种与监听有关的问题::

1、无监听

1)一般是监听出现没有启动造成。

解决方法:

工具栏右键>>>任务管理器>>>选择服务>>>找到Oracle相关的服务>>>启动。

菜单>>>运行>>>服务(有可能是server>>>本地服务)>>>找到Oracle相关的服务>>>启动

如图1。

图1

2)服务实例没有注册到监听中

出现此问题一般是配置监听失败,或者多个实例多个监听造成监听实例搞混淆的情况(一般很少见)。

一般数据库监听配置用NET Configuration assistance来进行,在进配置的时候,可能选择添加监听程序,如图3,在后续配置中,可能服务实例没有注册到监听中。

解决方法:

一般一个监听可以管理多个数据库实例,所以没必要配置多个监听。目前本人只研究一个监听对于多个监听造成的错误的解决方法,至于多个监听多个实例本人猜测可以用此类似方法解决。有待后续研究。

图2

图3

在安装Oracle数据库软件的文件夹下有三个关于监听或net的配置文件,本人电脑中,三个该文件的地址为:D:\oraclehudatabasesofeware\oraclestationofsoftware\NETWORK\ADMIN。三个文件名为:listener.ora,sqlnet.ora,tnsnames.ora。顾名思义三个文件listener与监听有关,tnsnames与数据库实例有关,sqlnet与网络连接有关。

上述以说出现错误为服务实例没有注册到监听中。所以打开listener文件,在文件中添加数据库实例名,内容如下,红色为加入内容:

# listener.ora Network Configuration File: D:\oraclehudatabasesofeware\oraclestationofsoftware\network\admin\listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = D:\oraclehudatabasesofeware\oraclestationofsoftware)

(PROGRAM = extproc)

(ENVS = "EXTPROC_DLLS=ONLY:D:\oraclehudatabasesofeware\oraclestationofsoftware\bin\oraclr11.dll")

)

(SID_DESC =

(GLOBAL_DBNAME = ORADB)

(ORACLE_HOME = D:\oraclehudatabasesofeware\oraclestationofsoftware)

(SID_NAME = ORADB)

)

(SID_DESC =

(GLOBAL_DBNAME = ORCL)

(ORACLE_HOME = D:\oraclehudatabasesofeware\oraclestationofsoftware)

(SID_NAME = ORCL)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

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

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

)

)

ADR_BASE_LISTENER = D:\oraclehudatabasesofeware

注意:

  1. 本人中包含两个数据库实例,所以加入两段话。GLOBAL_DBNAME = ORADB,全局数据库名称;ORACLE_HOME =D:\oraclehudatabasesofeware\oraclestationofsoftware,数据库所在位置;SID_NAME = ORADB。特别注意该文字必须包含在SID_LIST的括号内。
  2. 最后注意ADR_BASE_LISTENER = D:\oraclehudatabasesofeware,监听位置,如果数据库不在同一文件夹内,设置ADR_BASE_LISTENER的值指向某一数据库实例所在文件夹,将会出现监听无法启动的错误(连接时并不会显示监听无法启动,而是显示无监听,但在登陆日志中会记录listener.ora参数错误,日志所在位置为:D:\oraclehudatabasesofeware\Oraclebasedoct\diag\tnslsnr\hudage\listener下的trace文件夹下,和alter文件夹下均可看到)。
  3. 修改保存后,必须重启监听服务和数据库实例服务后才能连接数据库,否则,还会提示同样的错误。
  4. 虽然监听是主要问题,但是数据库实例名文件tnsnames也与监听有关,所以在listener修改完后,重启监听服务和数据库实例服务后,连接数据库,如果还有问题,就要查看tnsnames文件有没有问题。一般文件内容如下:

# tnsnames.ora Network Configuration File: D:\oraclehudatabasesofeware\oraclestationofsoftware\network\admin\tnsnames.ora

# Generated by Oracle configuration tools.

ORADB =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = oradb)

)

)

ORACLR_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SID = CLRExtProc)

(PRESENTATION = RO)

)

)

ORCL =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

2、当前监听无法识别连接描述符中请求的服务

如图5:

图5

监听无法识别连接描述符中请求的服务同样说明服务实例没有被监听程序发现,即没有注册到监听程序中,所以解决方法如上问题1中的第二种。

*多监听多实例问题有待进一步研究。

关于Oracle本地连接出现与监听有关的问题的解决方法探讨的更多相关文章

  1. oracle配置监听图形界面不出来解决方法

    ROOT用户下,执行 xhost +   然后再切换到oracle用户运行netca DISPLAY 在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或 ...

  2. 本地连接出现"已启用检测该状态的服务"解决方法、方案

    1.运行 输出dcomcnfg 2.组件服务-计算机-我的电脑-DCOM配置-netprofm 3.右键属性-安全-启动和激活权限-自定义 4.编辑-添加-输入对象名称来选择-输入“LOCAL SER ...

  3. 安装完oracle重新启动后报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务(重启前正常)

    安装完oracle重新启动后报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务(重启前正常) 刚安装完后用plSql登录正常. 在dos命令行下 输入  sqlplus 用户 ...

  4. 解决windows7无法连接CentOS7系统中oracle问题:ORA-12514 TNS 监听程序当前无法识别

    linux开启后终端按下面输入(容易忘记,记录下): [oracle@localhost ~]$ lsnrctl stop                #先关闭监听服务 [oracle@localh ...

  5. 连接Oracle 10g时ORA-12514:TNS:监听进程不能解析在连接描述符中给出的SERVICE_NAME错误的解决

    近日服务器断电,导致客户端连接ORACLE服务器时出现ORA-12514错误,在网上查得解决方法如下 解决方法: 1. 打开/network/admin/listener.ora文件,找到: SID_ ...

  6. (转)oracle 启动监听 报“监听程序不支持服务” 解决

    转自 http://www.51testing.com/html/99/478599-842622.html 今天安装了oracle后,启动监听,报错如下:    启动tnslsnr: 请稍候... ...

  7. oracle 11g 一直提示 严重: 监听程序未启动或数据库服务未注册到该监听程序

    From:http://blog.sina.com.cn/s/blog_6734ea6d0102v6sn.html 增加操作系统环境变量:ORACLE_HOSTNAME=localhost 然后在cm ...

  8. oracle client ORA-12541: TNS: 无监听程序

    1. Question description: if you are setting the oracle client to add a local network service,  you m ...

  9. 对于HDMI设备连接状态的监听

    对与最近主要做的是电视机盒子端的开发,其中涉及到设备的状态监听比较繁琐,所以对HDMI的连接状态的监听方法做个记录,方便后续查看. 主要通过两种方式: (1)比较常用的广播监听 注册一个动态广播来获取 ...

随机推荐

  1. 关于ffmpeg /iis 8.5 服务器下,视频截取第一帧参数配置

    ffmpeg 视频截取第一帧参数配置: 网站找了很多资料,但是都不能满足要求,然后自己写下解决过程. 首先看自己PHP 版本,安全选项里面 php5.4  跟php5.6 是不一样的.去除里面的sys ...

  2. 数字IC前后端设计中的时序收敛(一)前言

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 为了纪念,同时 ...

  3. Redis+Twemproxy分片存储实现

    from unsplash 为提高Redis存储能力的提升,以及对外提供服务可用性提升,有时候有必要针对Redis进行集群式搭建,比较常用的有Twemproxy分片存储以及官方提供的Cluster方式 ...

  4. springcloud高可用方案

    1. 场景描述 公司在规划后续可能会做中台服务,考虑用微服务的方案,让用springcloud部署个简单的高可用Demo. 2. 解决方案 2.1 方案说明 demo用了5台虚拟机: (1)1台gat ...

  5. SSAS Tabular 数据表关系与join的映射

    才想起来总结这两天发现的一个有趣的现象: 在SSAS Tabular 模型中建立了关系之后,在excel中分析发现: 产品库龄作为量值:Aging Stock:=sum([DISTRIBUTOR_ST ...

  6. iPhone调试移动端webview

    一.模拟器调试 1.启动Xcode 2.选择菜单Xcode - Open Developer Tool - Simulator 3.启动Simulator后,选择Simulator菜单Hardware ...

  7. dijkstra算法学习笔记

    dijkstra是一种单源最短路径算法,即求一个点到其他点的最短路.不能处理负边权. 最近某种广为人知的算法频繁被卡,让dijkstra逐渐成为了主流,甚至在初赛中鞭尸了SPFA(? dijkstra ...

  8. 成为高级 React 开发你需要知道的知识点

    简评:除了常见的 HOC 和 RenderProp 技巧,作者介绍了 7 个有用的知识点. 使用 Fragment 而不是 div 很多时候我们想要处理多个 component,但是 render 只 ...

  9. spring boot入门篇

    Spring Boot[快速入门]   Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point ...

  10. java的System.currentTimeMillis()和System.nanoTime

    纳秒 ns(nanosecond):纳秒, 时间单位.一秒的10亿分之一,即等于10的负9次方秒.常用作 内存读写速度的单位,其前面数字越小则表示速度越快.   1纳秒=1000 皮秒   1纳秒 = ...