ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle监听器的静态注册与动态注册(转)

Oracle监听器的静态注册与动态注册(转)

原创 Linux操作系统 作者:a871544728 时间:2013-07-09 19:39:41 0 删除 编辑

 

在运行lsnrctl命令的status时,常会看到如下返回值:ITPUB个人空间#K,PU|0_c
服务“test”包含1个例程。
   例程"mydata",状态 UNKOWN,包含此服务的一个处理程序。。。
服务"a"包含1个例程。
   例程"mydata",状态 READY,包含此服务的一个处理程序。。。
这里的,状态UNKOWN即表明为静态注册(手动填写参数);ITPUB个人空间%K7X&J4h_
状态为READY的记录,表明为动态注册(listener.ora参数由PMON进程自动从参数文件获取);

n v:I5gl [0
一、静态注册
监听配置中,数据库服务中的全局数据库名,可以写任意内容,与数据库无关,只要保证SID正确即可连上数据库。ITPUB个人空间(d Pp2Iu#CL"u)mO
由于静态注册,参数是手动静态添加,与数据库无关。数据库无法确认监听是否正确配置。因此,lsnrctl中的status显示状态为unkown。即不保证能连通数据库。
.}i[ f!{)[ _0
注意:静态注册监听,客户端在配置tnsnames.ora服务命名时,“(Oracle 8i或更高版本)服务名”里填写内容要与服务端静态注册监听器时的全局数据库名一致。否则,无法连通。
:[~"[Yx2xQ'Q0

-X#^0H%{ @_`0
lsnrctl中显示如下
服务“test”包含1个例程。
   例程“mydata”,状态UNKOWN,包含此服务的一个处理程序。。。
test即从监听配置过程,数据库服务中的“全局数据库名”读到的值(即配置文件中GLOBAL_DBNAME的值),“mydata”是从监听配置中,数据库服务中SID读到的值(即SID_NAME的值)。
SID_LIST_LISTENER =
 (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME =test)
      (ORACLE_HOME = /orahome/oracle/product/10.2.0/db_1)
      (SID_NAME =mydata)
    )
  )

KA9j-me*S(Q"jh\0
客户端在配置tnsname时,服务名(SERVICE_NAME)即为test。否则,连接不到数据库。
ABC=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.23)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME =ITPUB个人空间r"OX1_:\ Y7qb
test)
    )
  )
这里的ABC,为服务命名。可以为任意值,在客户端连接服务器时,填写的主机字符串,即为此服务命名ABC。
ITPUB个人空间P,cd9y\x a
二、动态注册
1、缺省的动态注册
pmon在数据库启动到mount或open时,动态从参数文件中读取service_names值。service_names可以为多个值。
$M0tfBl\s0
service_names缺省为dbca建立数据库时的全局数据库名。ITPUB个人空间4k)M6m9uE2N7K-H4j
设置参数service_names为'a,b,c',命令如下:ITPUB个人空间;?WM W6xO6v
alter system set service_names='a,b,c';ITPUB个人空间:]|8}j;v S%cq Y
则:
f'JU1h'J u Nt}0
lsnrctl状态如下:
服务“test”包含1个例程。
   例程"mydata",状态 UNKOWN,包含此服务的一个处理程序。。。
服务"a"包含1个例程。
   例程"mydata",状态 READY,包含此服务的一个处理程序。。。
服务"b"包含1个例程。
   例程"mydata",状态 READY,包含此服务的一个处理程序。。。
服务"c"包含1个例程。
   例程"mydata",状态 READY,包含此服务的一个处理程序。。。
服务 "mydata.ccddt.cn" 包含一个例程。
   例程"mydata",状态 READY, 包含此服务的一个处理程序。。。
ITPUB个人空间7iT`Zq2mUR.?
以上服务名a, b, c, mydata.ccddt.cn都为READY,为动态注册。ITPUB个人空间t.P| ?Q5\
这里多了最后一条"mydata.ccddt.cn",是PMON缺省动态注册到监听器内的。ITPUB个人空间P L \,i%a#a
注意:不管参数service_names为何值,pmon都会自动以全局数据库名(这里为mydata.ccddt.cn)为服务名,动态注册一个监听。
U4t Z)Xb{-BQ*X0
缺省情况下,若启用动态注册监听,端口号必须为1521。若启用其他端口的动态监听注册,必须要做相关配置。ITPUB个人空间#\ }w,zU @V
ITPUB个人空间5r#?&{-ds9fccTg
通过查看v$session,状态为SYS$USERS的连接为通过静态注册监听连接到服务器。ITPUB个人空间Zz7W QhA

$i w9Ya AZ7P[0
2、自定义端口的动态监听注册
3P+U|2`\ wE7W D3@f0
若要启用非默认端口1521的动态监听注册,缺省状态,Oracle不会进行动态注册。要启用动态注册,必须设置local_listener参数。并在服务端配置tnsnames.ora指定监听参数,或者直接通过修改local_listener指定监听参数。步骤如下:ITPUB个人空间_;Wf0s*`+p r ~
1)服务端ITPUB个人空间 vq[ C.A;y
netmgr,配置监听程序,监听端口为1525(非默认端口)ITPUB个人空间'k3}\ n5`s7jM

X:Js9s4d+IK0a0
保存配置ITPUB个人空间{}XUq:~K
        2)、指定监听参数
     (1)法1:直接通过修改local_listener参数指定ITPUB个人空间MDb p iB2?
    SQL>alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525))';ITPUB个人空间:r h!J:M!W
    System altered
  SQL>alter system registerITPUB个人空间4|/H.I7Bi pp*T+G(Cc
  System altered
           (2)法2:
在Oracle服务器端建立$ORACLE_HOME/network/admin/tnsnames.ora。解析文件,位置并填入如下内容
mytest =
(DESCRIPTION =
3_n&yG4i"o7V0
    (ADDRESS_LIST =ITPUB个人空间D;PL0qz9P
        (ADDRESS=(PROTOCOL=TCP)(HOST = 192.168.1.23)(PORT = 1525))
d|"t'|r3p/^Iq0
    )ITPUB个人空间 gNGx7O)P)S/O
)
%W+QP3z(F K*s+j0

M i9f?*ke6{1q*ra0
这里的mytest也可以根据自己需要,修改为其他字符串。如a或b等。
设置参数,指定通过tnsnames.ora内的信息指定监听参数
SQL>alter system set local_listener=mytest;ITPUB个人空间5\?1@3RvA4|r%z
System altered
SQL>alter system register;
3、查看监听器状态
LSNRCTL> statusITPUB个人空间'tyS,`ie
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525)))
P.e\SO jLv0STATUS of the LISTENER
3n!\.u C_(Z(QZ#I0------------------------ITPUB个人空间+Iq?%l7d8O7g(YV
Alias                     LISTENERITPUB个人空间;lt WFlX q
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionITPUB个人空间5jU9[9? b&}7v/NBn3M
Start Date                15-MAR-2011 10:43:47ITPUB个人空间%fs i$^]f+F
Uptime                    0 days 0 hr. 0 min. 56 secITPUB个人空间5Pl\b!l%o3N#qS
Trace Level               offITPUB个人空间&Yl zk4\*Y2F5S1G
Security                  ON: Local OS Authentication
|c`0@&|c0SNMP                      OFFITPUB个人空间1|.g$\_EFf
Listener Parameter File   /orahome/oracle/product/10.2.0/db_1/network/admin/listener.oraITPUB个人空间[+A tu2E3N
Listener Log File         /orahome/oracle/product/10.2.0/db_1/network/log/listener.log
K` QR@"e$k.d0Listening Endpoints Summary...
M-@"Yw%D0  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraserver)(PORT=1525)))ITPUB个人空间U&AY:C9x
Services Summary...
6MSR+GI'Z5i nD~0Service "a" has 1 instance(s).ITPUB个人空间4p/]}E1lU7D1{ i
  Instance "mydata", status READY, has 1 handler(s) for this service...
7| y6`3jx0Service "b" has 1 instance(s).ITPUB个人空间/@O z[O{'m
  Instance "mydata", status READY, has 1 handler(s) for this service...
'cY"G mm:C0Service "c" has 1 instance(s).
['F;D&U`G0  Instance "mydata", status READY, has 1 handler(s) for this service...
-[C B-^S0Service "mydata" has 1 instance(s).ITPUB个人空间d b i*AQ D.g{h
  Instance "mydata", status READY, has 1 handler(s) for this service...ITPUB个人空间\RJ1I0g9a
Service "mydataXDB" has 1 instance(s).
#vLA5Fv UM0  Instance "mydata", status READY, has 1 handler(s) for this service...ITPUB个人空间M?SlOA8R1f?r
Service "mydata_XPT" has 1 instance(s).
ryy\L rE0  Instance "mydata", status READY, has 1 handler(s) for this service...ITPUB个人空间O7ZQ n\K|s&Ac
The command completed successfully

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

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2013-07-08

  • 博文量
    28
  • 访问量
    126036