ITPub博客

首页 > 数据库 > Oracle > 监听的注册

监听的注册

原创 Oracle 作者:hiber987 时间:2015-01-21 18:28:07 0 删除 编辑

监听的注册分两种:

1、静态注册;

2、动态注册。

 

一、静态注册

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

1、配置内容

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

         select instance_name from v$instance;

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

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

         1.3、ORACLE_HOME:实例运行的ORACLE_HOME目录,在Linux和UNIX环境下,该参数可以省略,默认和环境变量$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_NAME和INSTANCE_NAME注册当前数据库的服务名和实例名。

         1.2、当前实例的负载情况

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

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

注意:在没有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种,BLOCKED、RESTRICTED和READY。

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

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

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

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

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

注册时间:2014-03-20

  • 博文量
    24
  • 访问量
    37387