0

0

Oracle监听器(listener)配置心得

php中文网

php中文网

发布时间:2016-06-07 17:05:26

|

1251人浏览过

|

来源于php中文网

原创

Oracle虽然用了多年,但是一直仅仅是用而已,没有深入看过oracle的东东。第一次,自己在服务器上完整创建并且配置一个oracle服务

一、配置初衷

oracle虽然用了多年,但是一直仅仅是用而已,没有深入看过oracle的东东。第一次,自己在服务器上完整创建并且配置一个oracle服务器,问题马上就出现了:

严重: 监听程序未启动或数据库服务未注册到该监听程序。启动该监听程序并注册数据库服务, 然后重新运行 EM Configuration Assistant。

有关详细资料, 请参阅 D:\Oracle\cfgtoollogs\dbca\orcl\emConfig.log 中的日志文件。

参考:

但是始终没有解决。(ps:也可能是我自身问题)

所以,决定拎起袖子,跨界学习一下oracle中的监听器吧。

二、监听器的原理理解

关于监听器的理解,不妨可以参考这篇文章:

以下,就谈谈我自己的浅薄的理解吧:

首先,我觉得监听器的设计使用了代理模式,而监听器正正是代理模式中所描述的代理。当客户端对数据库发生请求的时候,监听器就作为这个客户端的代理,发出对数据库实例的请求。当数据库实例的server 进程收到监听器转发过来的请求时候,会做出响应。而这个响应也是通过监听器转发给客户端。不难发现,客户端与数据库实例之间的交互是间接完成的,在他们中间就存在着一个中间人-监听器。

但是,有一点我们需要注意的,客户端永远不知道他请求的数据库实例是什么,唯一知道的只是数据库所在的服务器的某个服务的名字以及这个数据库分配给他的用户名和密码。这就好比我们去买苹果产品,我们买的时候去的只是代理商的店面,只知道产品是苹果公司卖的,但产品到底是由哪家代工公司生产的,作为消费者的我们一无所知。

但是,归根到底,总该有那么一个机制,负责维护“服务”,“监听器”,“数据库实例”三者之间的关系吧。答案是有的,请看下面的内容。

三、相应的三个配置文件:sqlnet.ora,tnsnames.ora,listener.ora(路径:$oracle_home\NETWORK\ADMIN;默认情况下安装的话,大概如此:D:\app\Administrator\product\11.2.0\dbhome_2\NETWORK\ADMIN)

考虑一下,以下的一种情况:

假如,我们需要连接到一个数据库上的名字为mzoa的实例并且这个数据库实例里面有一个密码为:a,用户名为:sysman的账号。但是,我们不知道这个数据库实例的名字,只知道这个数据库服务器向外提供了一个名为“mzoa”的“服务”,至于我们需要请求的数据库的实例的名字是什么,我们一无所知。但是,尽管如此,我们还是能够连接上我们需要找到的数据库实例-mzoa。(ps:实例名字“mzoa”与服务名字“mzoa”不是必然相同的,可以在创建实例的时候加以修改的!)

不信?可以看看下面……

我们可以在cmd里面完成以下的连接操作:

C

Copyright (c) 19822010, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0- Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

 至于为什么能这样子?我想上面的三个配置文件:sqlnet.ora,tnsnames.ora,listener.ora足以说明问题。

我们先将这三个配置文件分分类。sqlnet.ora,tnsnames.ora属于客户端,listener.ora属于服务器端。

第一类,客户端文件:sqlnet.ora,tnsnames.ora

 在我们上面的操作过程中,我们使用了以下的语句:

陌言AI
陌言AI

陌言AI是一个一站式AI创作平台,支持在线AI写作,AI对话,AI绘画等功能

下载

sqlplus sysman/a@I_AM_SERIVCE

“I_AM_SERIVCE”不是一个“服务”的名字,但是至于这个名字有什么内涵。我们需要oracle客户端做出解释。(注意:这里的oracle客户端指的是oracle客户端软件对应的进程集)

oracle客户端是这样子完成对“I_AM_SERIVCE”这一个名字作出解释的:

步骤一:

查看sqlnet.ora配置文件,内容如下:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME,EZCONNECT)

其中第二个条目NAMES.DIRECTORY_PATH,从左至右,指示首先由哪些文件来解释名字。

如上面的例子,就是指示,先由TNSNAMES.ora文件,然后是客户端所在系统的hosts文件……解释名字

步骤二:

因为,sqlnet.ora文件指出先由TNSNAMES.ora文件解释。

我们查看TNSNAMES.ora文件,里面关于“I_AM_SERIVCE”有以下的内容:

I_AM_SERIVCE=          
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mzoa)
    )
  )

 

在这里我们可以清晰看到关于这个“I_AM_SERIVCE”的名字的详细信息了。通过这个名字,我们可以请求数据库服务器所在地址:127.0.0.1,“服务”的名字是“mzoa”。

而端口号:1521正是我们这篇文章的主人公监听器(listener)正在监听的端口号。

通过以上信息,我们可以知道客户端的请求可以通过访问服务器“服务”的形式发送到监听器(listener)上。

 

第二类,服务器端:listener.ora。

内容以及解释如下:

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

797

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

272

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

144

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

25

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

92

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

53

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

717

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

64

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Node.js 教程
Node.js 教程

共57课时 | 11.7万人学习

CSS3 教程
CSS3 教程

共18课时 | 5.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号