监听的注册

监听的注册分两种:

1、静态注册;

2、动态注册。

 

一、静态注册

静态注册是指指定监听需要服务某个特定实例的客户端连接。即在listener.ora文件的SID_LIST_LISTENER模块中明确写明监听需要处理的实例名字,但监听并不关心数据库服务器上是否有真正的实例在运行。

1、配置内容

         1.1SID_NAME:数据库实例名,即与

         select instance_name from v$instance;

         的查询结果一致,不可省略。

         1.2GLOBAL_DBNAME:数据库服务名,可以省略,默认和SID_NAME保持一致。

         1.3ORACLE_HOME:实例运行的ORACLE_HOME目录,在LinuxUNIX环境下,该参数可以省略,默认和环境变量$ORACLE_HOME一致。在Windows环境中,该参数无效,ORACLE_HOME的值取自注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID

 

上述三个配置内容都是SID_DESC参数的内容,SID_DESC对于静态注册来说是必须存在的参数。示例:

SID_LIST_LISTENER =

         (SID_LIST =

                   (SID_DESC =

                            (GLOBAL_DBNAME=ocp11g)

                            (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)

                            (SID_NAME = ocp11g)

                   )

                   (SID_DESC =

                            (GLOBAL_DBNAME = hiber)

                            (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)

                            (SID_NAME = hiber)

                   )

         )

当为静态注册时,监听状态中的服务名(service)取自listener.ora中的关键字GLOBAL_NAME,监听状态中的实例名(Instance)取自listener.ora中的关键字SID_NAME

 

 

二、动态注册

与静态注册相对,动态注册模式下,listener.ora文件中可以不包含当前数据库的实例信息,甚至可以没有listener.ora这个文件。实例启动时,ORACLE系统会从初始化参数文件中读取有关监听程序的初始化参数,如service_names,会由PMON进程向监听程序动态的注册信息。当实例关闭时,会再次由PMON进程自动从监听里面撤销当前实例的信息,所以要实现动态注册,数据库的实例至少要处于NOMOUNT状态。

手动注册实例信息至监听的命令:

alter system register;

该命令实际上是手动触发PMON进程去更新实例信息。

1、动态注册的内容

PMON进程主要向监听注册如下内容:

         1.1、根据数据库参数SERVICE_NAMEINSTANCE_NAME注册当前数据库的服务名和实例名。

         1.2、当前实例的负载情况

         1.3、当前实例负载服务的句柄(service handle),如dispatchersdedicated servers

         1.4PMON启动时的系统环境信息。

注意:在没有listener.ora配置文件的情况下,如果启动监听,则监听为动态注册。用图形化工具netca创建的监听,默认也为动态注册。

 

2、需要注意的几个参数

监听状态中的几个名字来源的参数需要注意一下:

1、监听状态中的服务名取自数据库参数SERVICE_NAMES

2、监听状态中的实例名取自数据库参数INSTANCE_NAME

 

在配置文件tnsnames.ora连接串中的关键字SERVICE_NAME需要和listener.ora的关键字GLOBAL_DBNAME或者Oracle参数SERVICE_NAMES的值相同。

在配置文件tnsnames.ora连接串中关键字SID的值需要和listener.ora的关键字SID_NAME的值相同。

 

3、动态注册时的实例状态

在动态注册时,监听中的实例状态来自PMON进程动态注册时的实例状态,一般有3种,BLOCKEDRESTRICTEDREADY

         3.1BLOCKED一般表示实例处于NOMOUNT状态或者该实例类型为ASM实例,不接受客户端连接;

         3.2RESTRICTED一般表示数据库处于RESTRICT模式,不接受普通权限的远程客户端连接;

         3.3READY一般表示实例已处于MOUNTOPEN状态,客户端可以连接。

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

转载于:http://blog.itpub.net/29555029/viewspace-1409817/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值