静态注册

  静态注册是在启动listener时,listener会从listener.ora文件中获取服务名及相关信息。信息包括:实例名和服务名等。

--静态注册时,listener.ora中的内容如下:

 #SID_LIST_LISTENER描述对外提供数据库服务的列表;
#两个实例sun,+ASM分别对应服务名orcl01,orcl02
SID_LIST_LISTENER =
(
SID_LIST =
(
SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle)
(PROGRAM = extproc)
) (
SID_DESC =
(SID_NAME = sun) --提供注册的实例名
(ORACLE_HOME = /u01/oracle)
(GLOBAL_DBNAME =orcl01) --向外提供服务名
) (
SID_DESC =
(SID_NAME = +ASM)
(ORACLE_HOME = /u01/oracle)
(GLOBAL_DBNAME =orcl02)
)
) #LISTENER部分描述了主机地址、端口及协议
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.128)(PORT = 1521))
)

--配置对应的tnsnames.ora 中的节点

 -bash-3.00$ more tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/oracle/network/admin/tnsnames.ora
# Generated by Oracle configuration tools. #通过实例名连接
SUN01 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mysolaris)(PORT = 1521))
)
(CONNECT_DATA =
(SID = sun)
)
) #通过服务名连接
SUN02 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mysolaris)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl01)
)
) #通过实例名连接
ASM01 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mysolaris)(PORT = 1521))
)
(CONNECT_DATA =
(SID = +ASM)
)
) #通过服务名连接
ASM02 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mysolaris)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl02)
)
) EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

--启动监听

-bash-3.00$ lsnrctl start

LSNRCTL for Solaris: Version 10.2.0.2.0 - Production on 10-AUG-2013 20:50:35

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

Starting /u01/oracle/bin/tnslsnr: please wait...

TNSLSNR for Solaris: Version 10.2.0.2.0 - Production
System parameter file is /u01/oracle/network/admin/listener.ora
Log messages written to /u01/oracle/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.100)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.100)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Solaris: Version 10.2.0.2.0 - Production
Start Date 10-AUG-2013 20:50:35
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/oracle/network/admin/listener.ora
Listener Log File /u01/oracle/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.100)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl01" has 1 instance(s).
Instance "sun", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl02" has 1 instance(s).
Instance "+ASM", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

--可以看到实例sun及实例+ASM都在被监听

 Service "orcl01" has 1 instance(s).
Instance "sun", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl02" has 1 instance(s).
Instance "+ASM", status UNKNOWN, has 1 handler(s) for this service...

从上面信息可以看到,静态注册时监听程序所获取的实例名或服务名均来自listener.ora文件

动态注册

  动态注册是在instance启动的时候PMON进程根据init.ora中的instance_name,service_names两个参数将实例和服务动态注册到listener中。

  • instance_name默认是:db_name
  • service_names默认是:db_name.db_domain

  在启动listener时,会从listener.ora读取监听配置,如果该文件不存在,则监听会在主机名对应的IP和1521端口上进行监听。但监听刚刚启动的时候,并没有注册的服务。

1.配置默认端口的动态服务注册

--关闭实例,关闭监听,备份listener.ora

 -bash-3.00$ ls -l
-rw-r--r-- oracle oinstall Aug : listener.ora.bak
drwxr-x--- oracle oinstall Jan samples
-rw-r----- oracle oinstall Dec shrept.lst
-rw-r--r-- oracle oinstall Aug : tnsnames.ora

--启动监听

 -bash-3.00$ lsnrctl start
.........
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Solaris: Version 10.2.0.2. - Production
Start Date -AUG- ::
Uptime days hr. min. sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/oracle/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mysolaris)(PORT=)))
The listener supports no services
The command completed successfully

  可以看到:监听会在主机名对应的IP和1521端口上进行监听;监听刚刚启动的时候,并没有注册的服务

--启动实例后,查看监听 发现PMON进程会将服务注册进来

 -bash-3.00$ lsnrctl status
........
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=mysolaris)(PORT=)))
Services Summary...
Service "+ASM" has instance(s).
Instance "+ASM", status BLOCKED, has handler(s) for this service...
Service "+ASM_XPT" has instance(s).
Instance "+ASM", status BLOCKED, has handler(s) for this service...
Service "sun" has instance(s).
Instance "sun", status READY, has handler(s) for this service...
Service "sun_XPT" has instance(s).
Instance "sun", status READY, has handler(s) for this service...
The command completed successfully

2.配置非默认端口的动态服务注册

服务器端的配置

a.配置非默认的listener.ora

 -bash-3.00$ more listener.ora 

 LISTENER02 =     --这个名字最好不要用默认的LISTENER
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mysolaris)(PORT = ))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)

b.在配置文件tnsnames.ora中加入

 -bash-3.00$ more tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/oracle/network/admin/tnsnames.ora
# Generated by Oracle configuration tools. LISTENER02 = (
ADDRESS = (PROTOCOL = TCP)
(HOST = mysolaris)
(PORT = )
)
-bash-3.00$

c.启动非默认的侦听器

 -bash-3.00$ lsnrctl start LISTENER02

 STATUS of the LISTENER
------------------------
Alias LISTENER02
Version TNSLSNR for Solaris: Version 10.2.0.2. - Production
Start Date -AUG- ::
Uptime days hr. min. sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/oracle/network/admin/listener.ora
Listener Log File /u01/oracle/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.100)(PORT=)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
The listener supports no services
The command completed successfully
-bash-3.00$

d.设定local_listener参数

 SQL> alter system set local_listener = 'LISTENER02'; --LISTENER2为tnsnames.ora中的监听名称

e.手动使动态注册立即生效(此操作可有可无)

 SQL> alter system register;

Oracle 监听动态注册与静态注册的更多相关文章

  1. oracle监听动态注册与静态注册

    client端如果想要连接到远程的数据库服务器,首先数据库服务器必须启动监听器 oracle监听器的配置在$ORACLE_HOME/network/admin/listener.ora,打开这个文件, ...

  2. Oracle监听的静态注册和动态注册

    静态注册:通过解析listene.ora文件 动态注册:由PMON进程动态注册至监听中 在没有listener.ora配置文件的情况下,如果启动监听,则监听为动态注册.用图形化netca创建的监听,默 ...

  3. ORACLE监听配置及测试实验

    实验一: 修改db_domain和service_name 我们将Db_name和Db_domain两个参数用'.'连接起来,表示一个数据库,并将该数据库的名称称为Global_name即等于serv ...

  4. 【转】oracle 监听静态注册举例解析

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

  5. oracle 监听静态注册举例解析

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

  6. ORACLE 动态注册和静态注册的区别(转)

    1, oracle 10g 用netca方式建立的都默认为动态注册方式2,如果想改为静态注册的方式则在listener.ora 中加入如下内容即可 SID_LIST_LISTENER = (SID_L ...

  7. oracle监听(lsnrctl)详解解读

    (总结)Oracle监听服务lsnrctl参数及查询状态详解   lsnrctl命令常用参数详解: lsnrctlstart启动指定的监听器 stop关闭指定的监听器 status显示监听器的状态.s ...

  8. ORACLE监听理解

    参考官方文档Net Services Reference的7 Oracle Net Listener Parameters (listener.ora) 1 监听概念 oracle监听,是个服务器端进 ...

  9. LINUX启动ORACLE监听和服务

    可通过secureCRT或者telnet直接连 启动监听命令:lsnrctl start 成功启动后:sqlplus /nolog 回车 conn / as sysdba 回车 startup 回车 ...

随机推荐

  1. 炼数成金hadoop视频干货06-10

    视频地址:http://pan.baidu.com/s/1dDEgKwD 第六课统讲了hadoop几个子项目和HBase,第七课还是讲的HBase 第八课讲了PIG 第九课讲了Hive和Zookeep ...

  2. jQuery的动画效果

    jQuery 是一个 JavaScript 库.jQuery 库可以通过一行简单的标记被添加到网页中. <script type="text/javascript" src= ...

  3. 前端必会的js知识总结整理

    1.晨曦. 2.js是一门什么样的语言及特点?         js是一种基于对象和事件驱动的并具有相对安全性的客户端脚本语言.也是一种广泛用于web客户端开发的脚本语言,常用来给html网页添加动态 ...

  4. css3 渐变记

    css3 渐变 线性渐变 径向渐变 重复线性渐变 重复径向渐变 线性渐变 线性渐变接受三个参数,渐变的方向,起始颜色,结束颜色. 标准语法及参数:linear-gradient:([[<angl ...

  5. Networking - Ethernet II 帧

    Ethernet II 帧格式 DA SA Type Playload FCS DA(Destination Address): 该字段有 6 个字节,表示目的 MAC 地址. SA(Source A ...

  6. ios中Raw文件系统常用文件夹

    1.[/Applications] 常用软件的安装目录 2.[/Applications/Preferences.app/zh_CN.lproj] 软件Preferences.app的中文汉化文件存放 ...

  7. JSP之request对象

    在请求转发时,我们需要把一些数据传递到转发后的页面进行处理.这时就需要使用request对象的setAttribute()方法将数据保存到request范围内的变量中. 示例:创建index.jsp文 ...

  8. android自学笔记(1):android简介

    Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发.尚未有统一中文名称,中国大陆地区较 多人使用“安卓 ...

  9. 一个简单的Makefile的编写【用自己的话,解释清楚这些】

    用自己的话,解释清楚这些~ Makefile是程序员编写出来指导编译器编译程序源码为目标文件(可执行文件,或链接库) 这里只写一个简单的Makefile 作为例子 其需求如下: frank@ubunt ...

  10. Oracle 一些操作

    Achivelog ============================ alter system set db_recovery_file_dest='F:\ORACLE\recovery_ar ...