oracle 监听静态注册举例解析

网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as3 下的oracle 10gR2.0.1 举一个具体的例子

1、在 $ORACLE_HOME/network/admin/listener.ora 文件中加入一个静态注册的节点

[oracle@guohui6 oracle]$ cd $ORACLE_HOME/network/admin
[oracle@guohui6 admin]$ vi listener
.ora
# listener.ora Network Configuration File: /mydatafile2/app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
#
Generated by Oracle configuration tools.

SID_LIST_LISTENER
=
(SID_LIST
=
(SID_DESC
=
(SID_NAME
= PLSExtProc)
(ORACLE_HOME
= /mydatafile2/app/oracle/oracle/product/10.2.0/db_1)
(PROGRAM
= extproc)
)

(SID_DESC
=
(SID_NAME
= ORCL)
(ORACLE_HOME
= /mydatafile2/app/oracle/oracle/product/10.2.0/db_1)
(GLOBAL_DBNAME
=HJD.COM.CN)
)
)

LISTENER
=
(DESCRIPTION_LIST
=
(DESCRIPTION
=
(ADDRESS
= (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS
= (PROTOCOL = TCP)(HOST = guohui6)(PORT = 1521))
)
)

注意这里的global_dbname=HJD.COM.CN

SID_NAME=ORCL

这个SID_NAME 应与你对外提供服务的 $ORACLE_SID 一致

[oracle@guohui6 admin]$ echo $ORACLE_SID
ORCL

2、配置对应的tnsnames.ora 中的节点

[oracle@guohui6 admin]$ vi tnsnames.ora

# tnsnames.ora Network Configuration File: /mydatafile2/app/oracle/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
#
Generated by Oracle configuration tools.
ORCL=
(DESCRIPTION
=
(ADDRESS
= (PROTOCOL = TCP)(HOST = guohui6)(PORT = 1521))
(CONNECT_DATA
=
(SERVER
= DEDICATED)
(SERVICE_NAME
= ORCL)
)
)

GUOHUIORCL
=
(DESCRIPTION
=
(ADDRESS
= (PROTOCOL = TCP)(HOST = guohui6)(PORT = 1521))
(CONNECT_DATA
=
(SERVER
= DEDICATED)
(SERVICE_NAME
= HJD.COM.CN)
)
)

tnsname GUOHUIORCL 中的 SERVICE_NAME=HJD.COM.CN

这里的服务名为 HJD.COM.CN 而不是通常的 ORCL,因为在 listener.ora 中已经注册了 HJD.COM.CN,lsnrctl 启动时会监听 HJD.COM.CN ,并对应到 SID_NAME=ORCL 上。

3、启动监听和服务

[oracle@guohui6 oracle]$ cat dbstart
lsnrctl start
sqlplus
/nolog <<EOF
connect
/as sysdba
startup
EOF
[oracle@guohui6 oracle]$
./dbstart

LSNRCTL
for Linux: Version 10.2.0.1.0 - Production on 13-FEB-2011 20:11:15

Copyright (c)
1991, 2005, Oracle. All rights reserved.

Starting
/mydatafile2/app/oracle/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR
for Linux: Version 10.2.0.1.0 - Production
System parameter file is /mydatafile2/app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /mydatafile2/app/oracle/oracle/product/10.2.0/db_1/network/log/listener.log
Listening on
: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on
: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=guohui6)(PORT=1521)))

Connecting to (DESCRIPTION
=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR
for Linux: Version 10.2.0.1.0 - Production
Start
Date 13-FEB-2011 20:11:15
Uptime
0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON
: Local OS Authentication
SNMP OFF
Listener Parameter
File /mydatafile2/app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener
Log File /mydatafile2/app/oracle/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary
...
(DESCRIPTION
=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION
=(ADDRESS=(PROTOCOL=tcp)(HOST=guohui6)(PORT=1521)))
Services Summary
...
Service
"HJD.COM.CN" has 1 instance(s).
Instance
"ORCL", status UNKNOWN, has 1 handler(s) for this service...
Service
"ORCL" has 1 instance(s).
Instance
"ORCL", status UNKNOWN, has 1 handler(s) for this service...
Service
"PLSExtProc" has 1 instance(s).
Instance
"PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

SQL
*Plus: Release 10.2.0.1.0 - Production on Sun Feb 13 20:11:16 2011

Copyright (c)
1982, 2005, Oracle. All rights reserved.

SQL
> Connected to an idle instance.
SQL
> ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started
.

Total
System Global Area 461373440 bytes
Fixed Size
1220000 bytes
Variable Size
75498080 bytes
Database Buffers
381681664 bytes
Redo Buffers
2973696 bytes
Database mounted
.
Database opened
.
SQL
> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning
, OLAP and Data Mining options
 

可以看到 

Service "HJD.COM.CN" has 1 instance(s).
  Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...

正在被监听。

4、验证该服务可以到达

[oracle@guohui6 oracle]$ tnsping GUOHUIORCL

TNS Ping Utility
for Linux: Version 10.2.0.1.0 - Production on 13-FEB-2011 20:14:59

Copyright (c)
1997, 2005, Oracle. All rights reserved.

Used parameter files
:
/mydatafile2/app/oracle/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION
= (ADDRESS = (PROTOCOL = TCP)(HOST = guohui6)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = HJD.COM.CN)))
OK (
10 msec)

tnsping guohuiorcl 就是刚才tnsnames.ora 中配置的 tnsname.可以看到,该地址可以通达。

5、利用静态注册的服务登入oracle

[oracle@guohui6 oracle]$ sqlplus tina/panda@guohuiorcl

SQL
*Plus: Release 10.2.0.1.0 - Production on Sun Feb 13 20:17:27 2011

Copyright (c)
1982, 2005, Oracle. All rights reserved.


Connected to
:
Oracle Database 10g Enterprise Edition Release
10.2.0.1.0 - Production
With the Partitioning
, OLAP and Data Mining options

SQL
> select count(*) from date_log;

COUNT(*)
----------
3998

SQL
>

至此:已验证该静态注册可以成功的被解析,监听,连接。

posted @ 2011-02-14 02:23  疯狂的毛豆  阅读(6700)  评论(0编辑  收藏  举报