oracle动态注册缺点,OracleListener的动态注册

在有Oracle Listener的动态注册之前,采用的是静态注册,所谓静态注册是指Oracle实例在启动时,读取listener.ora里的配置,然后注

在有Oracle Listener的动态注册之前,采用的是静态注册,所谓静态注册是指Oracle实例在启动时,读取listener.ora里的配置,然后注册到Listener,它主要有两个缺点:

1. Listener不知道Oracle实例的实时状态

2. listener.ora里的配置比较麻烦,常需要手动修改。

动态注册

所谓动态注册是指Oracle实例启动后,会通过pmon进程实时的把实例状态和参数(instance_name,service_name)同步给Listener,其中参数instance_name如果为空,则默认为SID,参数service_name如果为空,则默认为db_name.db_domain

有了动态注册之后,我们甚至不需要listener.ora,这时命令lsnrctl start将启动默认的Listener(TCP协议、1521端口,Service和Instance分别来自参数service_name和instance_name。

这里有一个小tip:pmon并不是真正实时同步Oracle实例至Listener,而是隔几十秒,但你可以通过alter system register命令手动同步。

下面我们来看一个例子:

在这个例子里,我们没有配置listener.ora,listener.ora启动后的状态如下:

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date 18-SEP-2013 16:58:01

Uptime 0 days 0 hr. 12 min. 54 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Log File /opt/oracle/diag/tnslsnr/data/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.15)(PORT=1521)))

Services Summary...

Service "orcl.localdomain" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

The command completed successfully

instance_name和service_names参数配置如下:

SQL>show parameter instance_name

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

instance_name string orcl

SQL>show parameter service_name

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

service_names string orcl.localdomain

从上面我们可以发现:Listener里的Service、Instance是和instance_name、service_names参数相对应。这里需要特别说明的是:参数service_names可以指定多个service_name,它们之间用逗号隔开。

在客户端tnsnames.ora里我们可以设置SID等于instance_name:

test =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.15)(PORT = 1521))

)

(CONNECT_DATA =

(sid = orcl)

)

)

也可以设置service_name等于services_names中的任意一个:

test =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.15)(PORT = 1521))

)

(CONNECT_DATA =

(service_name = orcl.localdomain)

)

)

相关阅读:

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

Oracle DBA之监听的静态注册与动态注册

Oracle Listener 动态注册 与 静态注册

Linux/Unix shell 监控Oracle监听器(monitor Listener)

Oracle一个实例配置多个Listener或多个端口

logo.gif, 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值