ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE监听简介

ORACLE监听简介

原创 Linux操作系统 作者:skuary 时间:2011-04-07 16:31:35 0 删除 编辑
一 ORACLE LISTENER的作用
1 注册ORACLE 服务
一个监听可以注册多个ORACLE 服务。如在一个主机上我有2个INSTANCE。如果我的监听只配置了一个INSTANCE,那个外部永远无法连接到另外个INSTANCE。
2 监听所有连接ORACLE SERVER的请求。
接到来自客户端的请求后,我要识别客户端到底要连接到那个数据库。
也就是把注册过的ORACLE服务 和 客户端请求中的地址,SERVICE NAME进行匹配,找到那个相对应的ORACLE 服务。
3 连接CLIENT 和 SERVER
将ORACLE SERVER PROCESS分配给那些通过连接验证的CLIENT。

注意点:
即使ORACLE DB正常工作,但LISTENER停止工作了。外部将无法连接到数据库。但本机仍然是可以的。

二 相关文件
这些文件一般存放在
$ORACLE_HOME/network/admin/中

listener.ora 监听使用的配置文件
tnsname.ora 本地命名法使用的配置文件
sqlnet.ora 制定连接的方式
names.ora 指明oracle name server服务器地址等信息
ldap.ora 指明LADP服务器地址等信息

三 连接的方式:
– Host naming
主机命名法
使用主机名。如HOSTS文件,DNS,NIS
– Local naming
本地命名法
使用TNSNAME.ORA文件
– Directory naming
目录命名法
使用LDAP协议
– Oracle Names
ORACLE 命名法
使用ORACLE NAME SERVERS。ORACLE NAME SERVER是存放一个地址与名称的对应关系的SERVER。
– External naming
外部命名法
使用第三方的产品。



四 配置文件

listener.ora 是监听的配置文件。是用作服务端的。
tnsname.ora是用在客户端,主要实现连接数据库(使用LOCAL NAMING的方法)。    

listener 例子

  1. 第一段:LISTENER 的监听对象

LISTENER =                                                                                                                
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.198.131)(PORT = 1521))                         =======>对象的描述由IP地址、协议和端口号组成。
 )                                                                                                                                                     

(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)

  1. 第一段:LISTENER 中注册的服务。

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test1)
(ORACLE_HOME = /oracle/product/9.2.0/test1)
(SID_NAME = test1)
)
(SID_DESC =
(GLOBAL_DBNAME = test2)
(ORACLE_HOME = /oracle/product/9.2.0/test2)
(SID_NAME = test2)
)
(SID_DESC =
(GLOBAL_DBNAME = test3)
(ORACLE_HOME = /oracle/product/9.2.0/test3)
(SID_NAME = test3)
)
)

tnsname.ora例子

HP_ORAQUE=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.198.131)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test1)
)
)

  • 其中 HOST = 10.31.0.193 是指 DB SERVER的IP
  • SERVER = DEDICATED 相对于SHARED模式,是指连接ORACLE SERVER的模式。

   DEDICATED 专用模式 外部连接直接继承或重定向给SERVER PROCESS.
   SHARED 共享模式 外部连接SERVER DISPATCHER,然后由DISPATCHER分配SERVER PROCESS。即类似于在CLIENT和SERVER端部署了一个连接池。

  • SERVICE_NAME 必须要与在LISTENER中注册过的服务名相同。


连接方法

sqlplus test/test@HP_ORAQUE

本例中将会连接到TEST1 数据库。因为在TNSNAME.ORA文件中 HP_ORAQUE中的SERVICE_NAME = test1

这里HP_ORAQUE只是一个标识,它可以随意命名,为了方便记忆会定义成一些有意义的字符。


最常用的应该是本地连接法。
昨天提到过hostname的方法。
这里简单介绍下:
假如你的db hostname是 dbtest03
你需要完成以下操作来实现hostname:
1 在sqlnet.ora中指定hostname方式
NAMES.DIRECTORY_PATH= (HOSTNAME)
2 在listener中注册dbtest03

连接DB
[oracle@dbtest03 admin]$ sqlplus test/test@dbtest03

SQL*Plus: Release 10.2.0.4.0 - Production on Wed Sep 16 14:28:48 2009

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options

SQL>

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

上一篇: RMAN备份概念
请登录后发表评论 登录
全部评论

注册时间:2011-03-31

  • 博文量
    88
  • 访问量
    317151