ITPub博客

首页 > Linux操作系统 > Linux操作系统 > listener的静态注册与动态注册详述

listener的静态注册与动态注册详述

原创 Linux操作系统 作者:zhanglei_itput 时间:2009-03-30 16:53:55 0 删除 编辑

listener注册类型
                1. 静态注册
                    8i及8i以前,均采用静态注册。
                    把注册的信息提前写到listener.ora里面。
                    oem和其他服务是必须的。
                2. 动态注册
                    Oracle9i 或Oracle8i 例程使用动态服务注册
                    不需要配置listener.ora文件
                    动态注册由PMON进程执行 在初始化参数中必须配置SERVICE_NAMES、INSTANCE_NAME这两个参数,才可以进行动态注册
                    缺省情况下,PMON 向TCP/IP 的缺省本地地址— 端口1521— 处的服务器上的本地监听程序进行注册
                    非缺省监听程序注册(e.g.prot=1522),定义LOCAL_LISTENER 初始化参数(可以通过tnsnames.ora 等命名方法将非缺省listener_alias解析,也可以直接把address字符串添加到LOCAL_LISTENER中)
alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.230.68)(PORT = 1522))'

下面是分别对默认的动态注册、静态注册、非默认listener的静态注册和非默认listener的动态注册做的试验:
 1.  默认listener动态注册(缺省本地地址— 端口1521-SERVICE_NAMES、INSTANCE_NAME)
      dbca库以后,D:\oracle\network\admin是没有listener.ora, tnsnames.ora这两个文件的
  D:\oracle\network\admin\sqlnet.ora内容:
  # This file is actually generated by netca. But if customers choose to
  # install "Software Only", this file wont exist and without the native
  # authentication, they will not be able to connect to the database on NT.
  SQLNET.AUTHENTICATION_SERVICES = (NTS)
C:\Documents and Settings\zhanglei>lsnrctl service                                                                                                   
LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 30-3月 -2009 15:05:49                                                                            
Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.            
正在连接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))                                 
服务摘要..                                                                     
服务 "leiz" 包含 1 个例程。                                                    
  例程 "leiz", 状态 READY
, 包含此服务的 1 个处理程序...                        
    处理程序:                                                                  
      "DEDICATED" 已建立:17 已拒绝:0 状态:ready                                
         LOCAL SERVER                                                          
服务 "leizXDB" 包含 1 个例程。                                                 
  例程 "leiz", 状态 READY, 包含此服务的 1 个处理程序...                        
    处理程序:                                                                  
      "D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1002 状态: ready                
         DISPATCHER                                  
         (ADDRESS=(PROTOCOL=tcp)(HOST=leiz)(PORT=1750))                        
命令执行成功                  
结论:9i数据库创建完以后,默认使用的是动态注册(READY代表动态注册, UNKONW代表静态注册)

 2.  默认listener静态注册
      netca添加 默认LISTENER,文件listener.ora文件内容如下:
   SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = d:\oracle)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = leiz) /*添加instance_name */
      (ORACLE_HOME = d:\oracle)
      --(PROGRAM = extproc)/*备注:这行一定要去掉,否则conn测试会失败*/
    )
  )
重启listener,查看监听服务状态
C:\Documents and Settings\zhanglei>lsnrctl service
LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 30-3月 -2009 15:30:03
Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.15.99)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
  例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已被拒绝:0
         LOCAL SERVER
服务 "leiz" 包含 2 个例程。
  例程 "leiz", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已被拒绝:0
         LOCAL SERVER
  例程 "leiz", 状态 READY, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已拒绝:0 状态:ready
         LOCAL SERVER
服务 "leizXDB" 包含 1 个例程。
  例程 "leiz", 状态 READY, 包含此服务的 1 个处理程序...
    处理程序:
      "D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1002 状态: ready
         DISPATCHER
         (ADDRESS=(PROTOCOL=tcp)(HOST=leiz)(PORT=1750))
命令执行成功      
结论:此时,静态LISTENER UNKNOWN也被注册进去了。READY代表动态注册, UNKONW代表静态注册

 3.  非默认listener3 静态注册
      netca添加 非默认监听LISTENER3,文件listener.ora文件内容如下:
LISTENER3 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.15.99)(PORT = 1522))
      )
    )
  )
  SID_LIST_LISTENER3 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = d:\oracle)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = leiz)
      (ORACLE_HOME = d:\oracle)
       --(PROGRAM = extproc)/*备注:这行一定要去掉,否则conn测试会失败*/
    )
  )
C:\Documents and Settings\zhanglei>lsnrctl service listener3
LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 30-3月 -2009 16:22:27
Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.15.99)(PORT=1522)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
  例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已被拒绝:0
         LOCAL SERVER
服务 "leiz" 包含 1 个例程。
  例程 "leiz", 状态 UNKNOWN,
包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:42 已被拒绝:0
         LOCAL SERVER
命令执行成功
结论:非默认LISTENER3此时为静态注册。READY代表动态注册, UNKONW代表静态注册

 4.  非默认listener3 动态注册
       启用非默认listener3动态注册

SQL> alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.15.99)(PORT = 1522))';
系统已更改。
C:\Documents and Settings\zhanglei>lsnrctl service listener3
LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 30-3月 -2009 16:28:53
Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.15.99)(PORT=1522)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
  例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已被拒绝:0
         LOCAL SERVER
服务 "leiz" 包含 2 个例程。
  例程 "leiz", 状态 UNKNOWN,
包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已被拒绝:0
         LOCAL SERVER
  例程 "leiz", 状态 READY, 包含此服务的 1 个处理程序...
    处理程序:
      "DEDICATED" 已建立:0 已拒绝:0 状态:ready
         LOCAL SERVER
服务 "leizXDB" 包含 1 个例程。
  例程 "leiz", 状态 READY, 包含此服务的 1 个处理程序...
    处理程序:
      "D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1002 状态: ready
         DISPATCHER
         (ADDRESS=(PROTOCOL=tcp)(HOST=leiz)(PORT=1139))
命令执行成功
结论:非默认LISTENER3此时既有静态注册,又有动态注册。READY代表动态注册, UNKONW代表静态注册

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9252210/viewspace-580699/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 退一步海阔天空
下一篇: Sun Jar
请登录后发表评论 登录
全部评论

注册时间:2009-02-10

  • 博文量
    400
  • 访问量
    1117386