ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 动态监听监听和静态注册---elaine

动态监听监听和静态注册---elaine

原创 Linux操作系统 作者:Elaine_gao 时间:2012-07-26 22:21:04 0 删除 编辑

一:静态注册监听:
如果采用的是静态注册监听,那么实例启动时候读取listener.ora文件的配置,讲实例和服务注册到监听,这里global_name提供对外的服务名,sid_name提供实例名。而在tnsnames中配置的service_name正是对应的global_name的名字。

tnsname的serviece_name和对应的global_name要对应,大小写要却分,host用IP代替,看个人习惯。instance_name只有唯一的一个名称,而service_name可以有多个用于tnsnames.ora客户端连接,连接字符串(TNS中的LUDA就是一个字符串)也可以随意取名对于客户端来说,它不用关心数据库的名字、实例名到底是什么,它只需要知道数据库对外提供的服务名就行了,这个名字可能和实例名一样,也可能不一样。

二:动态注册监听:

动态注册监听:
* 删掉listener配置文件,则为默认的动态配置

动态注册就是实例启动的时候PMON进程根据init.ora中的instance_name,service_names两个参数将实例和服
务动态注册到listener中。在没有配置listener文件的时候,在init.ora文件中指定了instance_name,servi
ce_names两个参数的值。注册到监听器中的实例从init.ora文件中的instance_name参数获得(这里pfile和s
pfile就不作解释了),如果没有设置instance_name,那么将从初始化参数文件中取db_name的值。可以通过
show parameter或者试图v$parameter查找这两个参数的值。注册到监听中的服务值从初始化参数文件的serv
ice_name获取。如果该参数没有设置,数据库将拼接init.ora中的db_name和db_domain的值来注册。如果设置
了service_names的值,可以根据业务需求等设置名称,比如ora1.taobao.com或者缩写ora1.如果是缩写,并
且设置了db_domain,那么注册到listener的服务名将是service_name。db_main,比如:
db_main=luda.com
service_name=ora1

那么注册到监听的服务名则是:
ora1.luda.com

动态注册时候,listener.ora的内容为:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2/db_1)
(PROGRAM = extproc)
)
)

三:区别:

动态注册的数据库通过状态信息中的状态READY或状态BLOCKED(对于一个备用数据库)来指明。不管何时数据库关闭,动态注册的数据库都会动态地从监听器注销,而与之相关的信息将从状态列表中消失。这样,不管数据库是在运行还是已经关闭,监听器总是知道它的状态。该信息将被用于连接请求的回退(fallback)和负载平衡。

状态UNKNOWN值的是静态注册的设置。这是监听器用来表明它不知道关于该实例的任何信息的方式,只有当客户发出连接请求时,它才检查该实例是否存在

 

~~新手上路,多多指教~~

   小妞elaine

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26863369/viewspace-737085/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-04-08

  • 博文量
    8
  • 访问量
    3165