`

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

 
阅读更多

 

一、sqlnet.ora 

sqlnet.ora用在oracle client端,用于配置客户端连接服务端oracle的相关参数。

读取该文件路径与tnsnames.ora一样,如果装了oracle服务端默认是%ORACLE_HOME%\NETWORK\ADMIN,可以通过TNS_ADMIN环境变量配置。

 

1).NAMES.DEFAULT_DOMAIN:域名domain定义,在你用sqlplus访问数据库的时候,会在tns别名后面加上".domain" 

示例:.NAMES.DEFAULT_DOMAIN=.com 

在客户端执行命令:sqlplus username/password@local_dev的时候,会出现如下错误信息:  "ORA-12154: TNS: 无法处理服务名"或者"ORA-12154: TNS:could not resolve service name"这样的错误信息。因为sqlplus username/password@orcl的时候,将tns别名“orcl”转换成了“orcl.com”,所以orcl.com在tnsnames.ora中找不到,就报错了。

修改tnsnames.ora中的定义如下:

 

ORCL.com =   
(DESCRIPTION =   
 (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.147)(PORT = 1521)) 
   ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = orcl)   
   )   
) 

 

再执行sqlplus username/password@orcl连接成功。 

2)NAMES.DIRECTORY_PATH:定义了在客户端连接数据库时,采用什么样的匹配方式。

示例:

 

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT, HOSTNAME) 

 

那么在客户端执行sqlplus username/password@local_dev连接数据库的时,首先采用tnsnames.ora的别名配置连接数据库;如果连接不上;再采用EZCONNECT进行解析,最后采用主机名进行解析。 

当然这里配置的都是远程连接方式:

TNSNAMES:通过tnsnames.ora文件连接,格式

username/password@tnsname

 

EZCONNECT:只需要配置sqlnet.ora的上述属性,打开服务端监听器。格式如下:

 

//这里service_name就是listener.ora中的global_dbname,这个必须有后面的instance_name可有可无
username/password@[//]host[:port][/service_name][/instance_name]
 HOSTNAME:这个方式用的少,不介绍

上述的都是通过网络连接,需要oracle服务器启动listener服务。如果是连接本地数据库的话,ip地址明显可以省略了,sid的话,本地的注册表HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDb11g_home1中的ORACLE_SID参数或者系统参数的ORACLE_SID会提供,因此也可以省略。

这时候直接输 sqlplus username/password就能登录

或者sqlplus   /   as sysdba这是用操作系统认证的方式登录


 

3)SQLNET.AUTHENTICATION_SERVICES:定义登录数据库的认证方式,这个参数默认没有设置。 示例:SQLNET.AUTHENTICATION_SERVICES=(NONE,NTS) 

NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用,先后顺序表明验证的优先方式。 

4)tcp.validnode_checking=yes:表示启用客户端的IP检查,非法的IP将被拒绝访问Oracle。

5)tcp.invited_nodes=(IP1,IP2,IP3...):表示允许哪些IP访问Oracle。

6)tcp.excluded_nodes=(IP1,IP2,IP3...):表示拒绝哪些IP访问Oracle。

 

二、tnsnames.ora 

tnsnames.ora用在oracle client端,tnsnames.ora文件用于TNSNAMES连接方式,该方式是通过网络的远程连接方式。所以连接本地oracle服务的时候,如果关闭了监听服务是连接不了的。

如果本地安装了oracle服务端,则默认读取%ORACLE_HOME%\NETWORK\ADMIN下的tnsnames.ora文件。一般我们会通过配置系统变量TNS_ADMIN来读取客户端下的tnsnames.ora文件。

可以用tnsping命令查看tnsname状态

文件配置示例:

 

ORCL =
   (DESCRIPTION =
     (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.147)(PORT = 1521))
     )
     (CONNECT_DATA =
        (SERVICE_NAME = orcl) 
     )
   ) 
 

 

PROTOCOL参数一般是TCP,可以根据服务器情况选择一种配置方式。

HOST 一般是ip地址,如果是主机名,则应该在客户端系统的host文件上配好主机名和ip地址的映射关系。 

PORT 标准是1521,根据服务器端的监听端口而定。

SERVICE_NAME 就是数据库的服务名。 

 

三、listener.ora 

tnslsnr是服务器进程,用于监听、并接受远程连接数据库请求的监听进程。listener.ora是tnslsnr进程的配置文件,监听的参数都是从该配置文件中读取,该文件位于服务端。如果你只需要在本地连接数据库,不接受远程连接,那么也不需要启动tnslsnr进程,也不需要去维护listener.ora文件。 

启动监听进程的命令,在命令模式下,执行lsnrctl(listener control好记一点) start命令就启动了监听进程tnslsnr,lsnrctl status可以查看监听程序状态,或者在服务中找到OracleOraDb11g_home1TNSListener服务启动它。

示例: 

 

//这里定义监听器为那些实例服务
SID_LIST_LISTENER = 
 (SID_LIST =
     (SID_DESC =
        (SID_NAME = PLSExtProc)
        (ORACLE_HOME = /oracle/product/10.2.0/db_1) 
        (PROGRAM = extproc)
     )
      (SID_DESC = 
// 这个是监听的全局数据库名,与tnsnames.ora文件中SERVICE_NAME对应,可能当时设置这个参数的目的是不让服务端的sid暴露,这个随便取名称跟sid没关系的
      (GLOBAL_DBNAME = orcl)  
      (ORACLE_HOME = /oracle/product/10.2.0/db_1)
       (SID_NAME = orcl)
     )      
)
//这里定义监听器 所监听的位置(可以不止一个),配置地址、端口
LISTENER =
    (DESCRIPTION_LIST = 
   (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.147)(PORT = 1521))
       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
     )
   ) 
 

 

LISTENER部分包含协议地址列表,每个实例一个入口。

 SID_LIST_LISTENER部分标识全局数据库名称、标识监听程序正在服务的每个实例的Oracle软件主目录以及实例或SID。

 

 

当你执行命令sqlplus username/password@tnsname时,一般处理过程如下:

1)查询sqlnet.ora看看名称的解析方式,发现是TNSNAME,或者hostname。 

2)则查询tnsnames.ora文件,从里边找tnsname的记录,并且找到主机名,端口和service_name。

3)如果listener进程没有问题的话,建立与listener进程的连接。 

4)根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。

5)这时候网络连接已经建立,listener进程的历史使命也就完成了。

几种连接数据库用到的命令形式: 

1)sqlplus "/ as sysdba" 这是典型的操作系统认证,不需要listener进程,数据库即使不可用也可以登录。 

2)sqlplus username/password 不需要listener进程,登录本机数据库,数据库实例启动即可。

3)sqlplus username/password@tnsname需要listener进程,最常见的远程登录模式,需要启动数据库实例和listener进程。

分享到:
评论

相关推荐

    认识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文件详解

    总之,`listener.ora`、`sqlnet.ora` 和 `tnsnames.ora` 这三个文件共同构成了Oracle网络配置的核心,它们分别负责监听服务管理、安全与命名方法配置以及网络服务名映射,确保了Oracle数据库能够高效、安全地在网络...

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

    在Oracle数据库环境中,`sqlnet.ora`、`tnsnames.ora`和`listener.ora`三个文件起着至关重要的作用,分别位于Oracle安装目录下的`$HOME/network/admin`文件夹内。这三个配置文件对于建立客户端与服务端之间的通信至...

    tnsnames.ora配置

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

    oracle网络配置 tnsnames.ora

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

    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_...

    pl/sql developer 监听、tnsnames.ora

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

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

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

    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 特征:监听器无法启动 ...

    tnsnames2013-2-22

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

    Oracle网络配置(原创).pdf1

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

    Oracle的配置文件

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

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

    - **listener.ora**文件配置了监听器端口和服务名称,这样客户端才能通过网络连接到数据库服务端。该文件指定了客户端与服务端通信所使用的协议和端口号。 - **sqlnet.ora**文件包含了用于控制客户端和数据库服务器...

    swt form

    总结来说,Oracle数据库安装和网络配置涉及到多个文件和参数,正确地理解和配置这些文件(如listener.ora, tnsnames.ora, sqlnet.ora等)对于数据库的正常运行至关重要。错误的配置可能会导致认证问题和连接失败,而...

    oracle client

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

    oracle客户端连接服务器端

    Oracle客户端连接服务器端涉及到几个关键配置文件:listener.ora、sqlnet.ora和tnsnames.ora,它们都位于$ORACLE_HOME\network\admin目录下。理解这些文件的作用对于建立和维护Oracle数据库连接至关重要。 首先,`...

Global site tag (gtag.js) - Google Analytics