关于Oracle本地连接出现与监听有关的问题的解决方法探讨
关于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
注意:
- 本人中包含两个数据库实例,所以加入两段话。GLOBAL_DBNAME = ORADB,全局数据库名称;ORACLE_HOME =D:\oraclehudatabasesofeware\oraclestationofsoftware,数据库所在位置;SID_NAME = ORADB。特别注意该文字必须包含在SID_LIST的括号内。
- 最后注意ADR_BASE_LISTENER = D:\oraclehudatabasesofeware,监听位置,如果数据库不在同一文件夹内,设置ADR_BASE_LISTENER的值指向某一数据库实例所在文件夹,将会出现监听无法启动的错误(连接时并不会显示监听无法启动,而是显示无监听,但在登陆日志中会记录listener.ora参数错误,日志所在位置为:D:\oraclehudatabasesofeware\Oraclebasedoct\diag\tnslsnr\hudage\listener下的trace文件夹下,和alter文件夹下均可看到)。
- 修改保存后,必须重启监听服务和数据库实例服务后才能连接数据库,否则,还会提示同样的错误。
- 虽然监听是主要问题,但是数据库实例名文件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本地连接出现与监听有关的问题的解决方法探讨的更多相关文章
- oracle配置监听图形界面不出来解决方法
ROOT用户下,执行 xhost + 然后再切换到oracle用户运行netca DISPLAY 在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或 ...
- 本地连接出现"已启用检测该状态的服务"解决方法、方案
1.运行 输出dcomcnfg 2.组件服务-计算机-我的电脑-DCOM配置-netprofm 3.右键属性-安全-启动和激活权限-自定义 4.编辑-添加-输入对象名称来选择-输入“LOCAL SER ...
- 安装完oracle重新启动后报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务(重启前正常)
安装完oracle重新启动后报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务(重启前正常) 刚安装完后用plSql登录正常. 在dos命令行下 输入 sqlplus 用户 ...
- 解决windows7无法连接CentOS7系统中oracle问题:ORA-12514 TNS 监听程序当前无法识别
linux开启后终端按下面输入(容易忘记,记录下): [oracle@localhost ~]$ lsnrctl stop #先关闭监听服务 [oracle@localh ...
- 连接Oracle 10g时ORA-12514:TNS:监听进程不能解析在连接描述符中给出的SERVICE_NAME错误的解决
近日服务器断电,导致客户端连接ORACLE服务器时出现ORA-12514错误,在网上查得解决方法如下 解决方法: 1. 打开/network/admin/listener.ora文件,找到: SID_ ...
- (转)oracle 启动监听 报“监听程序不支持服务” 解决
转自 http://www.51testing.com/html/99/478599-842622.html 今天安装了oracle后,启动监听,报错如下: 启动tnslsnr: 请稍候... ...
- oracle 11g 一直提示 严重: 监听程序未启动或数据库服务未注册到该监听程序
From:http://blog.sina.com.cn/s/blog_6734ea6d0102v6sn.html 增加操作系统环境变量:ORACLE_HOSTNAME=localhost 然后在cm ...
- oracle client ORA-12541: TNS: 无监听程序
1. Question description: if you are setting the oracle client to add a local network service, you m ...
- 对于HDMI设备连接状态的监听
对与最近主要做的是电视机盒子端的开发,其中涉及到设备的状态监听比较繁琐,所以对HDMI的连接状态的监听方法做个记录,方便后续查看. 主要通过两种方式: (1)比较常用的广播监听 注册一个动态广播来获取 ...
随机推荐
- k8s学习 - 概念 - Pod
k8s学习 - 概念 - Pod 这篇继续看概念,主要是 Pod 这个概念,这个概念非常重要,是 k8s 集群的最小单位. 怎么才算是理解好 pod 了呢,基本上把 pod 的所有 describe ...
- Atlassian In Action-Jira之核心配置(二)
道生一,一生二,二生三,三生万物. --<道德经> 如果说第一节的指导思想是管理之"道",那我们本节的核心配置就是Jira系统之"道"了.有了核心配 ...
- 解决springboot项目请求出现非法字符问题 java.lang.IllegalArgumentException:Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
springboot版本: 2.1.5 最近使用springboot搭建了一个App后台服务的项目,开发接口的时候在本机使用postman工具做请求测试,请求返回一直很正常,但是在前端开发使用h5请求 ...
- xx.exe 中的 0x014180bd 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突(当指针访问异常时,应考虑是不是对象未创建)。
xx.exe 中的 0x014180bd 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突
- SP1805 HISTOGRA - Largest Rectangle in a Histogram 题解
题目链接:https://www.luogu.org/problemnew/show/SP1805 分析: 我们可以用一个单调栈由低到高来存储它的高度,并用数组对每个高度记录一下它前面(包括它自己)一 ...
- c语言进阶12-线性表之顺序表
一. 线性表的定义 为什么要学习线性表呢? 因为我们日常生活中存在种数据关系,计算机程序是为了解决日常生活的数据关系,因此我们要学习线性表. 线性表是什么呢? 线性表是由n个元素组成的有限序列. 需 ...
- 【转】DataTable 中数据筛选
转自:http://blog.163.com/yangxw_2009/blog/static/155255217201032931755646/ 对DataTable进行过滤筛选的一些方法Select ...
- ArcGIS API For JavaScript 开发(二)基础地图
有了开发环境,接下来的就是实践了,实践是检验真理的唯一标准! 多多练习,不要觉得自己能够想的出来就万事大吉了,还是得动手做才是最好的检验自己的能力. 基础地图,本节将通过arcgis api for ...
- Web网站工作原理解析
Web的工作原理 Web采用的是客户机--服务器架构(Client--Server model),如下图所示,其中客户端(Client)可以通过网络连接访问另一台计算机的资源或服务,而提供资源或服 ...
- Oculus Rift 没有声音的解决方法
If you do not hear any audio when using Rift, please try the following steps: Check the Rift audio s ...