关于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. windows美化工具7+ Taskbar Tweaker

    今天分享一个windows美化工具 7+ Taskbar Tweaker 调整工具专为 Windows 任务栏工作者量身定制,支持 Windows 7 以及更高版本的(非服务器版)微软操作系统平台. ...

  2. python通过TimedRotatingFileHandler按时间切割日志

    通过TimedRotatingFileHandler按时间切割日志 线上跑了一个定时脚本,每天生成的日志文件都写在了一个文件中.但是日志信息不可能输出到单一的一个文件中. 原因有二:1.日志文件越来越 ...

  3. ES6中的解构

    数组中的解构: 输出 : 白板 幺鸡 二条 对象的解构: 输出: 老王 12 数组的结构用[];对象的解构用{}:一定要区分它是数组还是解构. 区分方法:看 它是在赋值还是在拿值,等号左边,都为解构, ...

  4. Java编程思想:文件读写实用工具

    import java.io.*; import java.util.ArrayList; import java.util.Arrays; public class Test { public st ...

  5. Python 3.5学习笔记(第二章)

    本章内容 1.模块 2.数据类型与数据运算 3.进制 4.byte 与 string 的互相转换 5.列表 6.元组 7.字符串操作 8.字典 一.模块 Python 把某些常用的定义存放在文件中,为 ...

  6. [springboot] 搭建项目及单元测试

    本文纯属记录自己学习的过程以及相关使用操作,使用工具Idea2018. 1.创建项目: -- 目录结构 2.配置文件   3.pom文件 4.创建测试类并启动项目 package com.zr.dem ...

  7. Spring MVC + Spring + MyBatis 框架整合

    本文介绍使用SSM框架开发web项目Demo. 一.创建一个web-Poject项目 1.导入相关jar文件至lib下.“相关jar文件” --提取密码 oraw 2.修改web.xml文件 < ...

  8. http面试笔试常考知识点(二)

    接上一篇随笔 1. https协议为什么比http安全? 内容加密:建立一个信息安全通道,确保信息传输安全: 身份认证:确保网站的真实性: 数据完整性校验:防止内容被第三方冒充或者篡改 2.常见状态码 ...

  9. IO流总结1

    一.什么是流? 流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接收端就是流,流机制是Java及C++中的一个重要机制,通过流我们可以自由地控制文件.内存.IO设备等数据的流向. ...

  10. solr配置分词器

    一.solr4.10 + mmseg4j-2.2.0分词器 1.solr的安装部署:http://www.cnblogs.com/honger/p/5876289.html,注意不同的版本安装方式可能 ...