`

listener.ora/sqlnet.ora/tnsnames.ora配置文件详解

阅读更多

oracle网络配置 
三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下。

英文说明:

The sqlnet.ora is an optional file expressing more parameters about the connection (eg: the 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 youwould 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@ora 
假如我的sqlnet.ora是下面这个样子 
SQLNET.AUTHENTICATION_SERVICES= (NTS) 
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME) 
那么,客户端就会首先在tnsnames.ora文件中找ora的记录.如果没有相应的记录则尝试把ora当作一个主机名,通过网络的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=ora这个实例,当然我这里ora并不是一个主机名

如果我是这个样子 
NAMES.DIRECTORY_PATH= (TNSNAMES) 
那么客户端就只会从tnsnames.ora查找ora的记录,括号中还有其他选项,如LDAP等并不常用。

2.  tnsnames.ora------这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应。 
只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES是,才会尝试使用这个文件。 
例子: 
ORA_TEST = 
    (DESCRIPTION = 
       (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) 
       ) 
      (CONNECT_DATA = 
         (SERVER = DEDICATED) 
         (SERVICE_NAME = ora) 
      ) 
    ) 

ORA_TEST:客户端连接服务器端使用的服务别名。注意一定要顶行书写,否则会无法识别服务别名。 
PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。 
HOST:ORACLE服务器端IP地址或者hostname。确保服务器端的监听启动正常。 
PORT:数据库侦听正在侦听的端口,可以察看服务器端的listener.ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。 
SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令查看。

3.  listener.ora------listener监听器进程的配置文件 
关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。 
例子: 
#listener.ora Network Configuration File: #E:/oracle/product/10.1.0/Db_2/NETWORK/ADMIN/listener.ora 
# Generated by Oracle configuration tools. 
SID_LIST_LISTENER = 
    (SID_LIST = 
         (SID_DESC = 
             (GLOBAL_DBNAME = ora) 
             (ORACLE_HOME = E:/oracle/product/10.1.0/Db_2) 
             (SID_NAME = ora) 
         ) 
    )

LISTENER = 
    (DESCRIPTION = 
        (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) 
    )

LISTENER :监听名称,可以配置多个监听,多个监听的端口号要区分开来。 
GLOBAL_DBNAME :全局数据库名。通过select * from global_name; 查询得出 
ORACLE_HOME :oracle软件的跟目录 
SID_NAME :服务器端(本机)的SID 
PROTOCOL:监听协议,一般都使用TCP 
HOST:本机IP地址,双机时候使用浮动IP 
PORT:监听的端口号,使用netstat –an 检查该端口不被占用。

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

sql*plus运行基本机理: 
在用户输入sqlplus system/manager@test后,sqlplus程序会自动到sqlnet.ora文件中找NAMES.DEFAULT_DOMAIN参数,假如该参数存在,则将该参数中的值取出,加到网络服务名的后面,即此例中你的输入由sqlplus system/manager@test自动变为sqlplus system/manager@test.server.com ,然后再到tnsnames.ora文件中找test.server.com网络服务名,这当然找不到了,因为该文件中只有test网络服务名,所以报错。解决的办法就是将sqlnet.ora文件中的NAMES.DEFAULT_DOMAIN参数注释掉即可,如 #NAMES.DEFAULT_DOMAIN = server.com。假如NAMES.DEFAULT_DOMAIN参数不存在,则sqlplus程序会直接到tnsnames.ora文件中找 test网络服务名,然后取出其中的host ,port,tcp,service_name,利用这些信息将连接请求发送到正确的数据库服务器上。

 

by:http://blog.csdn.net/aten_xie/article/details/6174069

分享到:
评论

相关推荐

    认识oracle中的sqlnet.ora tnsnames.ora listener.ora三个文件

    ### 认识Oracle中的sqlnet.ora、tnsnames.ora与listener.ora三个关键配置文件 #### 一、概述 在Oracle安装过程中,我们常常会在安装目录下的`$HOME/network/admin`文件夹中发现三个重要的配置文件:`sqlnet.ora`、...

    Listener.ora、sqlnet.ora、tnsnames.ora三个配置文件区别.docx

    Listener.ora、sqlnet.ora、tnsnames.ora三个配置文件区别 Listener.ora、sqlnet.ora、tnsnames.ora三个配置文件是Oracle数据库中三个重要的配置文件,每个文件都有其特定的作用和用途。 首先,Listener.ora文件是...

    listener.ora sqlnet.ora tnsnames.ora文件详解

    ### Oracle网络配置详解:Listener.ora, Sqlnet.ora与Tnsnames.ora #### Listener.ora:监听器配置文件 `listener.ora` 文件是Oracle数据库系统中至关重要的网络配置文件之一,它负责管理数据库的监听器服务,确保...

    oracle中的sqlnet.ora+tnsnames.ora+listener.ora

    ### Oracle中的sqlnet.ora、tnsnames.ora与listener.ora详解 #### 一、概述 在Oracle数据库环境中,`sqlnet.ora`、`tnsnames.ora`和`listener.ora`三个文件起着至关重要的作用,分别位于Oracle安装目录下的`$HOME/...

    tnsnames.ora配置

    tnsnames.ora文件通常位于$ORACLE_HOME/network/admin目录下,与listener.ora和sqlnet.ora一起协同工作,为Oracle数据库客户端提供连接服务。 sqlnet.ora文件在这个过程中起到关键的决策作用,它类似Linux或其他...

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    oracle配置文件tnsname

    ### Oracle配置文件详解:tnsnames.ora, listener.ora, sqlnet.ora #### 一、概述 在Oracle数据库的网络配置中,有三个重要的配置文件:`listener.ora`、`sqlnet.ora` 和 `tnsnames.ora`。这些文件位于 `$ORACLE_...

    oracle网络配置 tnsnames.ora

    本文将详细介绍`listener.ora`、`sqlnet.ora`、`tnsnames.ora`这三个核心配置文件的作用及其配置方法。 #### 1. `sqlnet.ora` 文件 `sqlnet.ora`文件的作用类似于Linux或其他Unix系统中的`nsswitch.conf`文件,它...

    listener_ora--sqlnet_ora--tnsnames_ora的关系以及手工配置举例

    在Oracle数据库系统中,`listener.ora`, `sqlnet.ora` 和 `tnsnames.ora` 是三个至关重要的配置文件,它们共同负责网络服务的管理和连接。理解它们之间的关系和如何手工配置对于管理和维护Oracle数据库是至关重要的...

    pl/sql developer 监听、tnsnames.ora

    在实际应用中,可能还需要配置其他文件,如`sqlnet.ora`,来控制网络连接的行为,如加密选项、身份验证方式等。同时,`ldap.ora`文件用于配置LDAP(轻量级目录访问协议)连接,以便通过目录服务进行身份验证。 总之...

    linux上的sqlnet.ora限制IP访问[借鉴].pdf

    sqlnet.ora文件通常位于$ORACLE_HOME/network/admin/目录下,与tnsnames.ora和listener.ora文件位于同一路径。该文件的配置非常简单,只需在文件中添加相应的记录即可。 限制IP访问的配置可以通过tcp.validnode_...

    linux上的sqlnet.ora限制IP访问.pdf

    Oracle 提供了通过 sqlnet.ora 配置文件来实现限制 IP 访问的功能。该文件通常位于 $ORACLE_HOME/network/admin/ 目录下,与 tnsnames.ora 和 listener.ora 位于同一路径。 通过配置 sqlnet.ora 文件,可以实现轻量...

    Oracle数据库常见问题诊断

    * (3) TNSNAMES.ORA 与 SQLNET.ORA 不一致 措施: * 检查 TNSNAMES.ORA 文件位置和内容格式 * 确保 TNS_ADMIN 环境变量指向 TNSNAMES.ORA 文件的位置 2. NL-00462 Error 或 ORA-00462 特征:监听器无法启动 ...

    Oracle网络配置(原创).pdf1

    Oracle 网络配置是 Oracle 客户端连接到数据库所需的网络配置,涉及到监听程序、服务名、命名方法、NETCA、NETMGR、LSNRCTL、SRVCTL、LISTENER.ORA、SQLNET.ORA、TNSNAMES.ORA 等多个概念和工具。

    tnsnames2013-2-22

    `tnsnames.ora`、`listener.ora`和`sqlnet.ora`是Oracle数据库配置中的三个关键文件,它们对于数据库连接和通信至关重要。让我们详细了解一下这三个文件及其作用。 1. **tnsnames.ora文件**: `tnsnames.ora`文件...

    Oracle的配置文件

    在给定的资源中,包含了三个核心的Oracle配置文件:`tnsnames.ora`,`listener.ora` 和 `sqlnet.ora`。这些文件分别用于不同的功能,下面将详细介绍它们的作用、结构以及如何进行配置。 首先,`tnsnames.ora` 文件...

    Oracle 11gr2连Oracle 19c 报ORA-28040 ORA-01017解决方法.pdf

    在Oracle 19c的配置文件中,有三个主要的配置文件需要注意:listener.ora、sqlnet.ora和tnsnames.ora。这些文件定义了Oracle数据库服务端的监听器配置、网络访问和服务名称解析设置。 - **listener.ora**文件配置了...

    oracle client

    - **network/admin** 目录:包含了网络配置文件,如listener.ora和sqlnet.ora。 4. **安装与配置** - 解压`instantclient_11_2`到指定目录,确保该目录包含所有必要的库文件。 - 设置环境变量,如`ORACLE_HOME`...

Global site tag (gtag.js) - Google Analytics