oracle监听概念,ORACLE监听简介

一 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 例子

第一段: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))

)

)

)

第一段: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

本例中将会连接到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>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值