记录一则LOCAL_LISTENER的问题

有网友反映,他在一套Oracle的测试环境中配置有两个监听,分别监听不同端口。 目前想把环境上的一套数据库同时注册到这两个监听,他将数据库参数local_listener和tnsname.ora文件配置如下:

然后抛出问题:tnsname.ora中的service_name可以随便填吗? 如果答案是不可以,那为什么他测试随意更改这个service_name都不影响注册? 如果答案是可以?那为什么平日工作中这个service_name填错就连不上呢?

首先,可以验证他说的这个场景是可以复现的。但其实他的困惑是因为将两个原本独立的问题混为一团所致。可以将他的困惑分解为2个独立的问题:

1.tnsname.ora中的service_name可以随便填吗?

当tnsnames.ora作为客户端配置时,此时要求service_name必须和要连接的库中的service_names中的某个值保持对应,否则也无法连接。这个针对初级dba都是必备常识,不必多说了。

2.为什么他测试随意更改这个service_name都不影响注册?

因为他这里的tnsnames.ora配置条目是单纯给local_listener使用的,而对于local_listener的配置,官方有明确说明:

LOCAL_LISTENER specifies a network name that resolves to an address or address list of Oracle Net local listeners (that is, listeners that are running on the same machine as this instance). The address or address list is specified in the TNSNAMES.ORA file or other address repository as configured for your system.

也就是说local_listener配置可以是网络别名,而且从它的默认值:

可以看出,如果这个tnsnames.ora中的条目如果只是单纯给local_listener使用,那实际应该并不要求配置service_name的值,或者说CONNECT_DATA这一块都不需要配置。

根据这个猜想,我在测试环境也实际验证了下,如果将tnsnames.ora 配置文件中新增一个条目,只包含如下信息:

TEST001 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = db01.example.com)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = db01.example.com)(PORT = 1526))
    )
  )

然后配置数据库local_listener的参数为TEST001,此时验证就可以实现两个监听的正常注册。 那么现在再回过头去看网友提出的这个问题,就非常好解释了,因为他所谓的这个随便填写的service_name,实际对于local_listener来说本来就不需要,所以任意修改它的值都不会影响到数据库注册到监听。而针对客户端的连接,需要根据tnsnames.ora配置文件中的service_name实际连接到具体的数据库,自然就不能填写错误。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 配置Server Side TAF

    实验环境:Oracle 11.2.0.4 RAC 参考MOS文档: How To Configure Server Side Transparent App...

    Alfred Zhao
  • RHEL7安装11204 RAC的注意事项

    最近在某客户的RHEL7 + 11204 RAC环境上测试遇到不少的坑,好在都赶在正式上线前及时发现并处理完毕。 其中两个问题比较典型所以特别记录下:问题都和...

    Alfred Zhao
  • 使用SQL计算宝宝每次吃奶的时间间隔

    需求:媳妇儿最近担心宝宝的吃奶时间不够规律,网上说是正常平均3小时喂奶一次,让我记录下每次的吃奶时间,分析下实际是否偏差很大,好在下次去医院复查时反馈给医生。 ...

    Alfred Zhao
  • 猿实战18——商品发布之类目选择

    猿实战是一个原创系列文章,通过实战的方式,采用前后端分离的技术结合SpringMVC Spring Mybatis,手把手教你撸一个完整的电商系统,变身猿人找到...

    山旮旯的胖子
  • 机器学习正在导致“科学危机”

    目前,许多科学家用机器学习技术来分析数据等,但其产生的结果有时是具有误导性的,而且往往是完全错误性的。

    新智元
  • Spring配置DBCP连接池

    爱撒谎的男孩
  • max-width

    max-width 规定标签设置最大宽度,且在默认情况下,设置初始化宽度的时候接近最大最大宽度。

    Html5知典
  • 【SIGAI高校巡讲回顾】北京邮电大学站

    2018年11月01日晚7:00-8:30,SIGAI高校巡回讲座在北京邮电大学举行,举办地点是教3楼235,本着搭建高校交流桥梁,拓宽学生科技视野的目的,SI...

    SIGAI学习与实践平台
  • 【SIGAI高校巡讲回顾】北京科技大学站

    2018年11月02日晚7:30-9:00,SIGAI高校巡回讲座在北京科技大学举行,举办地点是教3楼235,本着搭建高校交流桥梁,拓宽学生科技视野的目的,SI...

    SIGAI学习与实践平台
  • spring加载properties属性

    爱撒谎的男孩

扫码关注云+社区

领取腾讯云代金券