Oracle监听配置(四)--如何实现静态、动态注册
第三节我们已经大概了解什么是静态注册和动态注册,下面我们将通过两个例子来更加深入了解它们之间的区别。
静态注册:当listener使用的是非标准端口(1522),在listener.ora的文件里手工注册(添加instance
name 和 service name)
动态注册:listener 采用的是默认端口(1521),当实例启动时,由pmon
自动将instance name 和service name 注册到listener
1、静态注册(1)通过netca 建立非标准端口的listener
:lis2(1522)
(2)修改listener.ora
——查看listener.ora
[oracle@work ~]$ cd
/u01/app/oracle/product/10.2.0/db_1/network/admin/
[oracle@solaris10
admin]$cat listener.ora
LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = solaris10)(PORT =
1522))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME =
/u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = solaris10)(PORT = 1521))
)
)
——添加静态注册信息
[oracle@solaris10 admin]$vi
listener.ora
***************************这里面的是静态注册信息*****************************
SID_LIST_LISTENER2
=
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = anny)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME =
anny)
)
)
***************************这里面的是静态注册信息************************************
LISTENER2
=
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL =
TCP)(HOST = solaris10)(PORT = 1522))
)
)
SID_LIST_LISTENER
=
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM =
extproc)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = work)(PORT =
1521))
)
)
——启动lsn2
[oracle@solaris10 admin]$lsnrctl
start listener2
LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on
16-MAR-2012 17:58:12
Copyright (c) 1991, 2005, Oracle. All rights
reserved.
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr:
please wait...
TNSLSNR for Solaris: Version 10.2.0.2.0 -
Production
System parameter file is
/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages
written to
/u01/app/oracle/product/10.2.0/db_1/network/log/listener2.log
Listening on:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=solaris10)(PORT=1522)))
Connecting
to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=solaris10)(PORT=1522)))
STATUS
of the LISTENER
------------------------
Alias
listener2
Version TNSLSNR for Solaris: Version 10.2.0.2.0 -
Production
Start Date 16-MAR-2012
17:58:12
Uptime 0 days 0 hr. 0 min. 0 sec
Trace
Level off
Security ON: Local OS
Authentication
SNMP OFF
Listener Parameter File
/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log
File
/u01/app/oracle/product/10.2.0/db_1/network/log/listener2.log
Listening
Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=solaris10)(PORT=1522)))
Services
Summary...
Service "anny" has 1 instance(s).
Instance "anny", status
UNKNOWN, has 1 handler(s) for this service...
The command completed
successfully
[oracle@solaris10 admin]$netstat -an|grep
1522
192.168.12.17.34007 192.168.12.31.1522 49640 0 49640 0
ESTABLISHED
192.168.12.17.1522 192.168.12.31.34220 49640 0 49640
0 ESTABLISHED
*.1522 *.* 0 0
49152 0 LISTEN
——查看lsn2 status
[oracle@solaris10
admin]$lsnrctl status listener2
LSNRCTL for Solaris: Version 10.2.0.2.0
- Production on 16-MAR-2012 18:02:24
Copyright (c) 1991, 2005, Oracle.
All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=solaris10)(PORT=1522)))
STATUS of
the LISTENER
------------------------
Alias
listener2
Version TNSLSNR for Solaris: Version 10.2.0.2.0 -
Production
Start Date 16-MAR-2012
17:58:12
Uptime 0 days 0 hr. 4 min. 12 sec
Trace
Level off
Security ON: Local OS
Authentication
SNMP OFF
Listener Parameter File
/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log
File
/u01/app/oracle/product/10.2.0/db_1/network/log/listener2.log
Listening
Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=solaris10)(PORT=1522)))
Services
Summary...
Service "anny" has 1 instance(s).
Instance "anny", status
UNKNOWN, has 1 handler(s) for this service...
The command completed
successfully
——status unknown
表示instance 是以静态注册方式注册
2、动态注册实现动态注册有两步:在服务端修改tnsnames.ora-->修改参数local_listener
如果前面有进行静态注册,要去listener.ora把静态注册信息删掉
——server
配置tnsnames.ora
LISTENER2 =
(DESCRIPTION =
(ADDRESS_LIST
=
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.17)(PORT =
1522))
)
(CONNECT_DATA =
(SERVICE_NAME = anny)
)
)
——修改参数local_listener
SQL> show parameter
local_listener
NAME
TYPE VALUE
------------------------------------
---------------------------------
------------------------------
local_listener
string
SQL> alter system set local_listener=listener2;
System
altered.
——客户端链接
bash-3.00$ sqlplus sys/oracle@anny1522 as
sysdba
SQL*Plus: Release 10.2.0.2.0 - Production on Fri Mar 16 18:31:39
2012
Copyright (c) 1982, 2005, Oracle. All Rights
Reserved.
Connected to:
Oracle Database 10g Enterprise Edition
Release 10.2.0.2.0 - Production
With the Partitioning, OLAP and Data Mining
options
SQL> show user;
USER 为
"ANNY"
SQL>
总结:静态注册能够启动多个监听,动态注册只能启动一个监听
启动默认监听时可以注册多个实例,非默认端口就只能启动动态注册的实例
©著作权归作者所有:来自51CTO博客作者Oracle小混子的原创作品,如需转载,请注明出处,否则将追究法律责任