zoukankan      html  css  js  c++  java
  • local_listener参数的作用!

    转自:http://warehouse.itpub.net/post/777/472788

    pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,要想让pmon动态注册listener,需要设置local_listener参数。

    下面是大致测试过程。

    1.listener.ora内容如下:

    --=======================================

    SID_LIST_LISTENER =
    (SID_LIST =
    (    SID_DESC =
         (GLOBAL_DBNAME = orcl)
         (ORACLE_HOME = E:oracleproduct10.2.0db_1)
         (SID_NAME = orcl)
    )
        (SID_DESC =
        (GLOBAL_DBNAME = test)
        (ORACLE_HOME = E:oracleproduct10.2.0db_1)
        (SID_NAME = test)
    )
    )
    
    LISTENER =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xys)(PORT = 1522))
    )

    --=======================================

    因为listener.ora中port是1522而非默认的1521,因此此时pmon不会动态注册监听:

    LSNRCTL> status
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
    LISTENER 的 STATUS
    ------------------------
    别名 LISTENER
    版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    启动日期 25-10月-2008 20:22:50
    正常运行时间 0 天 0 小时 0 分 7 秒
    跟踪级别 off
    安全性 ON: Password or Local OS Authentication
    SNMP OFF
    监听程序参数文件 e:oracleproduct10.2.0db_1networkadminlistener.o
    ra
    监听程序日志文件 e:oracleproduct10.2.0db_1networkloglistener.log

    监听端点概要...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1522)))
    服务摘要..
    服务 "orcl" 包含 1 个例程。
    例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    服务 "test" 包含 1 个例程。
    例程 "test", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
    --=============================================
    通过命令强制注册:
    SQL> alter system register;

    系统已更改。
    上述命令执行之后再次查看pmon是否动态注册了listener,下面结果显示还是没有动态注册:
    LSNRCTL> status
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
    LISTENER 的 STATUS
    ------------------------
    别名 LISTENER
    版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    启动日期 25-10月-2008 20:22:50
    正常运行时间 0 天 0 小时 0 分 12 秒
    跟踪级别 off
    安全性 ON: Password or Local OS Authentication
    SNMP OFF
    监听程序参数文件 e:oracleproduct10.2.0db_1networkadminlistener.o
    ra
    监听程序日志文件 e:oracleproduct10.2.0db_1networkloglistener.log

    监听端点概要...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1522)))
    服务摘要..
    服务 "orcl" 包含 1 个例程。
    例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    服务 "test" 包含 1 个例程。
    例程 "test", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
    --============================================


    没有注册的原因是pmon default只会注册port=1521的listener

    如果想让pmon动态注册prot以外的监听,此时需要设置参数 local_listener=listener

    下面设置参数local_listener:

    SQL> alter system set local_listener=listener;
    alter system set local_listener=listener
    *
    第 1 行出现错误:
    ORA-02097: 无法修改参数, 因为指定的值无效
    ORA-00119: 系统参数 LOCAL_LISTENER 的说明无效
    ORA-00132: 语法错误或无法解析的网络名称 'LISTENER'

    --提示错误,错误的原因是设置参数local_listener时需要把下面内容增加到服务器端的tnsnames.ora中,因为pmon在动态注册监听时要从tnsnames.ora中读取相关信息:

    接下来把下面内容增加到服务器端的tnsnames.ora中
    --======================================
    LISTENER =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xys)(PORT = 1522))
    )
    --=====================================
    再次尝试修改local_listener参数,修改成功:
    SQL> alter system set local_listener=listener;

    系统已更改。

    SQL>
    --=========================================
    修改之后过一会查看是否动态注册了监听,发现已经注册了:
    LSNRCTL> status
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
    LISTENER 的 STATUS
    ------------------------
    别名 LISTENER
    版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    启动日期 25-10月-2008 20:22:50
    正常运行时间 0 天 0 小时 1 分 50 秒
    跟踪级别 off
    安全性 ON: Password or Local OS Authentication
    SNMP OFF
    监听程序参数文件 e:oracleproduct10.2.0db_1networkadminlistener.o
    ra
    监听程序日志文件 e:oracleproduct10.2.0db_1networkloglistener.log

    监听端点概要...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1522)))
    服务摘要..
    服务 "orcl" 包含 2 个例程。
    例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
    服务 "orcl_XPT" 包含 1 个例程。
    例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
    服务 "test" 包含 1 个例程。
    例程 "test", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
    LSNRCTL>


    2.也可以把local_listener设置为address or address list:--因此可以自动注册到多个端口

    SQL> alter system set local_listener='(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = xys)(PORT = 1522)))';

    系统已更改。

    LSNRCTL> stop
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
    命令执行成功
    LSNRCTL> start
    启动tnslsnr: 请稍候...

    TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
    系统参数文件为e:oracleproduct10.2.0db_1networkadminlistener.ora
    写入e:oracleproduct10.2.0db_1networkloglistener.log的日志信息
    监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1522)))

    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
    LISTENER 的 STATUS
    ------------------------
    别名 LISTENER
    版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    启动日期 25-10月-2008 20:39:07
    正常运行时间 0 天 0 小时 0 分 3 秒
    跟踪级别 off
    安全性 ON: Password or Local OS Authentication
    SNMP OFF
    监听程序参数文件 e:oracleproduct10.2.0db_1networkadminlistener.o
    ra
    监听程序日志文件 e:oracleproduct10.2.0db_1networkloglistener.log

    监听端点概要...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1522)))
    服务摘要..
    服务 "orcl" 包含 1 个例程。
    例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    服务 "test" 包含 1 个例程。
    例程 "test", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
    LSNRCTL> status
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
    LISTENER 的 STATUS
    ------------------------
    别名 LISTENER
    版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    启动日期 25-10月-2008 20:39:07
    正常运行时间 0 天 0 小时 0 分 6 秒
    跟踪级别 off
    安全性 ON: Password or Local OS Authentication
    SNMP OFF
    监听程序参数文件 e:oracleproduct10.2.0db_1networkadminlistener.o
    ra
    监听程序日志文件 e:oracleproduct10.2.0db_1networkloglistener.log

    监听端点概要...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1522)))
    服务摘要..
    服务 "orcl" 包含 1 个例程。
    例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    服务 "test" 包含 1 个例程。
    例程 "test", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功

    SQL> alter system register;

    系统已更改。

    SQL>
    LSNRCTL> status
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
    LISTENER 的 STATUS
    ------------------------
    别名 LISTENER
    版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    启动日期 25-10月-2008 20:39:07
    正常运行时间 0 天 0 小时 0 分 21 秒
    跟踪级别 off
    安全性 ON: Password or Local OS Authentication
    SNMP OFF
    监听程序参数文件 e:oracleproduct10.2.0db_1networkadminlistener.o
    ra
    监听程序日志文件 e:oracleproduct10.2.0db_1networkloglistener.log

    监听端点概要...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1522)))
    服务摘要..
    服务 "orcl" 包含 2 个例程。
    例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
    服务 "orcl_XPT" 包含 1 个例程。
    例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
    服务 "test" 包含 1 个例程。
    例程 "test", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
    LSNRCTL>

  • 相关阅读:
    提交暂存更改时报 is outside repository 解决办法
    vue 路由跳转传参
    Unexpected token u in JSON at position 0 解决
    解决element table错位的问题
    使用docker制作Mysql镜像
    Linux系统性能排查
    分盘挂载
    Shell中的变量
    Shell流程控制
    Shell条件判断
  • 原文地址:https://www.cnblogs.com/princessd8251/p/3330934.html
Copyright © 2011-2022 走看看