监听总结之4.基本概念的区别和联系

来源:互联网 发布:mac系统如何回到桌面 编辑:程序博客网 时间:2024/05/21 23:37

监听名、监听程序、监听配置、监听配置条目、监听点、网络服务名

一、例如如下面名为LISTENER的监听配置:

LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) 
    ) 
  ) 
 
        则,上面等号的左边叫做监听名,这里的listener就是监听名。

       上面等号的右边整个内容,叫做监听配置(的内容)。上面所有内容,既是一个监听配置。其中, (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) 和(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)),叫监听配置条目(所谓监听配置条目,就是“协议+(比如)IP地址+端口号”这个信息。这里,就有两条监听配置条目。

       oracle系统在执行”start A“时,会根据监听名A去查找到listener.ora文件里对应的监听配置,进而创建(并启动)一个同名的监听程序的。

       由此,我们看到监听配置、监听程序都有自己的监听名。它们之间通过监听名相互联系在一起的。


注释:

     1、 监听程序其实是tnslsnr.exe的一个进程(在unix下)。既然是一个进程,那么停止后,就消失了,即操作系统不保存它在磁盘里的,它只生存在内存上,这个就是进程和程序的区别,程序的一个活动实例就是进程。所以,停止后要重新使用该进程,就需要重新创建。

           在window下,监听程序由(写到注册表中相应服务项)监听配置,tnslsnr.exe和服务组成。

     2、一个监听程序对应于一个相同监听名的监听配置,两者一一对应。两个监听程序对应的监听配置的内容即使相同,但是两者的监听名不同,那这两个两个监听程序就是两个不同的监听程序。


二、  一个监听配置条目对应于一个监听点,两个内容相同的监听配置条目当然都是对应于同一个监听点。也就是说,每个监听点都有自己的一个监听配置条目,不同监听点间的区别就在于他们的监听配置条目的内容不一样。如果两个不同监听配置里包含一条相同内容的监听配置条目,则两者对应的监听程序就都想要监听同一个监听点。

1、一个监听程序对应的监听配置里有多个监听配置条目,则该监听程序可以监听多个监听点。如下图所示:




 2、       一个监听点只能允许被一个监听程序所监听。例如,在监听点a被监听程序A监听后,若启动另一个监听程序B,而这个监听程序B所要监听的监听点里就包含了监听点a,则监听程序B不会被启动,会提示“A已经启动”。如下图所示:






三、网络服务名

   网络服务名来自tnsname.ora文件里的内容,由TNSNAME适配器将之解释为连接描述符。网络服务名是属于客户端的一个概念。

   例如,下面就是一个网络服务名的配置:

   ORCL_LINUX =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.24)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

其中,ORCL_LINUX就是网络服务名。

附加:
名为listener的监听配置若在listener.ora文件里没有,也是没事的。(开发时)oracle软件程序里就有一个常量变量,就是默认值,也是名为listener的一个监听配置。oracle软件自动用该监听配置来初始化配置名为listener监听程序。当然,在listener.ora文件里的名为listener的监听配置优先级要高,即它存在的话就用它来初始化配置名为listener监听程序。还有一点说明,就是oracle软件是用同名的监听配置来初始化配置(启动)同名的监听程序,例如,用名为A的监听配置来初始化配置(启动)同名为A的监听程序。

lsnrctl>start  lee   //这里的lee为监听程序的意思

该命令执行的过程就是读取在listener.ora文件里同名为lee的监听配置来初始化配置(并创建启动)该名为lee的监听程序。


原创粉丝点击