前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个listener.ora配置细节的问题

一个listener.ora配置细节的问题

作者头像
bisal
发布2019-01-29 15:15:00
1.1K0
发布2019-01-29 15:15:00
举报

今天做练习的时候,发现一个问题,可能是很小的细节问题,但确实稍微折腾了一下,记录于此,方便以后查阅。

问题现象:

1. 配置listener.ora静态监听。

2. 使用静态监听创建EM。

3. 使用sqlplus system/oracle@XXX或EZCONNECT方式,也提示错误:

4. 使用sqlplus / as sysdba可以正常登录。

问题排查:

1. 看报错,ORA-01034错误,给出了几种可能:

(1) SGA不足。

> 我是跑着虚拟机,sqlplus / as sysdba可以登录,尝试将参数文件的memory_target改小一些,仍报错。

(2) 指向实例的操作系统变量设置不正确。

> 看看上面的listener.ora、tnsnames.ora,都没有什么明显的异常啊?奇了怪了。。。

3. 网上搜索,一般还是说ORACLE_HOME或ORACLE_SID设置不正确。

4. 参考官方文档,发现有一些非常细节的不同,

如上所示,ORACLE_HOME的路径中结尾没有“/”,而我的版本是有这个符号,

难道真是这问题?将“/”删除后再试,sqlplus system/oracle@xxx或EZCONNECT均可登录,EM可以使用静态监听继续创建。问题就在于此,ORACLE_HOME多了一个“/”。

总结:

1. 这个问题的根源就是ORACLE_HOME的路径结尾多了一个“/”,想必Oracle的解析程序在得到ORACLE_HOME的value值后,是做了直接匹配,并没有对结尾的“/”进行转换,他要找"dbhome_1/"这个文件夹,自然错了。按常理讲,结尾的“/”不会是目录名称,因此这块其实容错性可以做得更好些。而且listener.ora的官方文档中除了示例中体现了这点,并没有其他介绍(至少我未找到),想必他认为这是一个常识。

2. 其实从报错上,就可以为问题排查指明方向,ORA-01034错误给出了两个可能的原因,要么内存SGA不足,要么环境变量有问题,只是自己开始没有注意这个细节。

3. sqlplus / as sysdba可以登录,sqlplus system/oracle@xxx不能登录, 这其实和内存无关,这两者只是登录的不同认证方式,不存在和内存使用有关的问题。

4. 一个小小的“/”,虽然是细节问题,但出现问题时的错误提示,依然可以为我们指明一些方向,足以进一步体会到Oracle的精湛。还未入道,还需努力。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年04月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档