Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3972
  • 博文数量: 2
  • 博客积分: 238
  • 博客等级: 二等列兵
  • 技术积分: 25
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-22 15:46
文章分类
文章存档

2010年(2)

我的朋友
最近访客

分类: Oracle

2010-07-22 15:49:05

有些时候对这几个的具体作用还是有些模糊,搜集一些资料整理如下:

文件存放位置:$ORACLE_HOME\network\admin

先整个英文的描述:

The sqlnet.ora is an optional file expressing more parameters about connection (eg: trace level for debugging, the types of authentication you would like to support and so on). It may be found on the client or the server.

The tnsnames.ora is used to find a Net8 listener and connect to it and pass to it the details of the database instance you would like to connect to. It will be found on the client side. Note that a SERVER can be a client of another database so it is typical to find it on the SERVER as well.

The listener.ora is used to setup the configuration of the net8 listener. to specify the port it will listen on, give it the details of the databases it can connect to and so on. This file is on the SERVER only.

再来中文描述:

1.sqlnet.ora 通过这个文件来决定怎么样找一个连接中出现的连接字符串。
例如我们客户端输入
sqlplus sys/oracle@orcl
假如我的sqlnet.ora是下面这个样子
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那么,客户端就会首先在tnsnames.ora文件中找orcl的记录.如果没有相应的记录则尝试把orcl当作一个主机名,通过的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例,当然我这里orcl并不是一个主机名。
如果我是这个样子
NAMES.DIRECTORY_PATH= (TNSNAMES)
那么客户端就只会从tnsnames.ora查找orcl的记录,括号中还有其他选项,如LDAP等并不常用。

2.tnsnames.ora 提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似
NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。
PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。
HOST:数据库侦听所在的机器的机器名或IP地址,数据库侦听一般与数据库在同一个机器上,所以当我说数据库侦听所在的机器一般也是指数据库所在的机 器。在UNIX或WINDOWS下,可以通过在数据库侦听所在的机器的命令提示符下使用hostname命令得到机器名,或通过ipconfig(for WINDOWS) or ifconfig(for UNIX)命令得到IP地址。
PORT:数据库侦听正在侦听的端口,可以察看服务器端的listener.ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。
SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令察看。

3.listener.ora listener监听器进程的文件。
关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。

上面说到的三个文件都可以通过图形的配置工具来完成配置
$ORACLE_HOME/netca
$ORACLE_HOME/netmgr
本人比较习惯netmgr
profile 配置的是sqlnet.ora也就是名称解析的方式
service name 配置的是tnsnames.ora文件
listeners 配置的是listener.ora文件,即监听器进程
具体的配置可以尝试一下然后来看一下配置文件。

这样一来总体结构就有了
当你输入sqlplus sys/oracle@orcl的时候
1.查询sqlnet.ora看看名称的解析方式,发现是TNSNAME
2.则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和service_name
3.如果listener进程没有问题的话,建立与listener进程的连接。
4.根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。
5.这时候网络连接已经建立,listener进程的历史使命也就完成了。

阅读(509) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~