Oracle 静态监听注冊具体解释

网上有非常多关于oracle 监听静态注冊的文章。但大多都是简单说说,并没有具体的样例。这里,将结合linux as4 下的oracle 10gR2.0.1 举一个具体的样例

1、在 $ORACLE_HOME/network/admin/listener.ora 文件里增加一个静态注冊的节点

[[email protected] oracle]$ cd $ORACLE_HOME/network/admin
[[email protected] admin]$ vi listener.ora
# listener.ora Network Configuration File: /mydatafile2/app/oracle/oracle/product/11.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/11.2.0/db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = ORCL)
      (ORACLE_HOME = /mydatafile2/app/oracle/oracle/product/11.2.0/db_1)
      (GLOBAL_DBNAME=WOO.COM)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = prudent)(PORT = 1521))
    )
  )

注意这里的GLOBAL_DBNAME=WOO.COM

SID_NAME=ORCL

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

[[email protected] admin]$ echo $ORACLE_SID
 ORCL

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

[[email protected] admin]$ vi tnsnames.ora
# tnsnames.ora Network Configuration File: /mydatafile2/app/oracle/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = prudent)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

WOOORCL=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = prudent)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = WOO.COM)
    )
  )

tnsname WOOORCL 中的 SERVICE_NAME=WOO.COM

这里的服务名为 WOO.COM 而不是通常的 ORCL,由于在 listener.ora 中已经注冊了 WOO.COM,lsnrctl 启动时会监听 WOO.COM 。并相应到 SID_NAME=ORCL 上。

3、启动监听和服务

[[email protected] oracle]$ cat dbstart
lsnrctl start
sqlplus /nolog <<EOF
connect /as sysdba
startup
EOF
[[email protected] oracle]$ ./dbstart
LSNRCTL for Linux: Version 11.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/11.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /mydatafile2/app/oracle/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /mydatafile2/app/oracle/oracle/product/11.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=prudent)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.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/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /mydatafile2/app/oracle/oracle/product/11.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=prudent)(PORT=1521)))
Services Summary...
Service "WOO.COM" 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 11.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 11.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

能够看到

Service "WOO.COM" has 1 instance(s).

Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...

正在被监听。

4、验证该服务能够到达

[[email protected] oracle]$ tnsping WOOORCL
TNS Ping Utility for Linux: Version 11.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/11.2.0/db_1/network/admin/sqlnet.ora

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

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

[[email protected] oracle]$ sqlplus system/[email protected]
SQL*Plus: Release 11.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 11.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select count(*) from date_log;
  COUNT(*)
----------
SQL>

至此:已验证该静态注冊能够成功的被解析,监听,连接。

时间: 2024-08-27 09:45:26

Oracle 静态监听注冊具体解释的相关文章

Oracle 静态监听注册详解

网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as4 下的oracle 10gR2.0.1 举一个具体的例子 1.在 $ORACLE_HOME/network/admin/listener.ora 文件中加入一个静态注册的节点 [[email protected] oracle]$ cd $ORACLE_HOME/network/admin [[email protected] admin]$ vi listener.ora # l

oracle数据库静态监听和动态监听 区别

oracle静态监听和动态监听 一.什么是注册? 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名 就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. 在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册 到监听器中:数据库服务器对应的实例和服务.) 相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对

Oracle 动态/静态监听注册

一.动态监听 oracle监听器是一个独立的进程,通常在数据库实例启动前先启动,当oracle实例在open时,会动态向监听器程序注册其service_names和instance_name.实例启动的时候,PMON进程会根据instance_name,service_name参数将实例和服务动态注册到listerer中. 1. listener.ora默认配置文件 # cat /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.

oracle网络 监听

这里讲解一下我对oracle网络的理解(静态监听): 监听的工作原理: 监听说白了,就是个套接字+PROTOCOL(协议) 套接字是通信的基石,是支持TCP/IP协议网络通信的基本单元.可以将套接字看作不同主机 之间的进程双向通信的端点. 一个完整的网络通讯必须具备协议.本地地址.本地端口.远程地址.远程端口和协议这5个基本要素,在创建套接字时确定了协议类型,而在绑定套接字确定了本地地址和本地端口,远程地址和远程端口.套接字即就是ip+port . 1.数据库启动起来之后(数据文件.控制文件.日

Oracle启动监听报错:The listener supports no services解决

Oracle启动监听报错:The listener supports no services解决 及ora-12514 未注册上服务问题. Oracle11g服务器重启系统之后,出现了几个莫名的报错,下面是其中一个,已解决. $ lsnrctl start 报错提示: The listener supports no servicesThe command completed successfully 这样启动后远程连接会报错:oracle ORA-12514:TNS:listener does

配置静态监听解决ORA-12514错误的案例

今天做Linux下DG配置的时候,遇到一个现象,tnsname.ora文件配置都正常,tnsping也正常,监听也正常,但是仍然报ORA-12514错误: SQL> set lin 130 pages 130 SQL> select dest_id,error from v$archive_dest; DEST_ID ERROR ---------- ----------------------------------------------------------------- 1 2 OR

动态监听与静态监听(转载)

目录(?)[+] 1.在lsnrctl命令的status时常会看到如下返回值 1.认识下注册 2.静态监听 3.动态注册 1.1 缺省的动态注册 2.2 自定义端口的动态注册监听 在lsnrctl命令的status时,常会看到如下返回值: [plain] view plain copy print? Service "elvis" has 2 instance(s). Instance "elvis", statusUNKNOWN, has 1 handler(s)

ADG静态监听

11g ADG 环境必须要配置的静态监听,复制粘贴,简单修改就可以 SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=orcl) (SID_NAME=orcl1) (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1) ) (SID_DESC= (GLOBAL_DBNAME=orcl_DGMGRL) (SID_NAME=orcl1) (ORACLE_HOME=/u01/app/ora

问题1:Oracle数据库监听启动失败(重启监听,提示The listener supports no services)

编辑监听文件:/home/DB/oracle/11gR2/db/network/admin/listener.ora 在文件内添加静态监听实例,如下内容: SID_LIST_LISTENER =(SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (SID_NAME = ora11g) )) 要注意的是,全局名和实例名要完全正确,此处区分大小写,比如之前试过,实际SID实例名是:ORA11g,但是我写成了ora11g,结果发现还是启动不了,把实例名改成OR