`
lenjey
  • 浏览: 90763 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Oracle网络配置用到的文件

阅读更多

listener.ora、tnsnames.ora和sqlnet.ora这3个文件是关系oracle网络配置的3个主要文件,都是放在$ORACLE_HOME\network\admin目录下。其中listener.ora是和数据库服务器端相关,而tnsnames.ora和sqlnet.ora这2个文件不仅仅关系到服务器端,主要的还是和客户端关系紧密。

一、客户端设置

1.sqlnet.ora

通过这个文件来决定怎样找一个连接中出现的连接字符串

示例文件:
    # sqlnet.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
    # Generated by Oracle configuration tools.

    # This file is actually generated by netca. But if customers choose to
    # install "Software Only", this file wont exist and without the native
    # authentication, they will not be able to connect to the database on NT.

    SQLNET.AUTHENTICATION_SERVICES= (NTS)

    NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME, ONAMES, EZCONNECT)

    #NAMES.DEFAULT_DOMAIN = oracle.com

内容说明:

SQLNET.AUTHENTICATION_SERVICES= (NTS)——这个表示采用OS认证,在数据库服务器上,可以利用sqlplus / as sysdba。一般这个配置在windows上是ok的,在unix环境下可能会有问题,一般在unix下可以去掉这个配置。

NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME, ONAMES)——表示将首先利用tnsnames进行解析;如果tnsnames解析不到,将使用hostname解析;如果hostname解析不到,将采用onames进行解析;最后使用EZCONNECT解析。例如我们客户端输入:sqlplus zidi/zidi@changbai,那么,客户端就会首先在tnsnames.ora文件中找orcl的记录.如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的IP地址然后去连接这个IP上global_name=changbai这个实例,当然我这里orcl并不是一个主机名。

被注释掉的NAMES.DEFAULT_DOMAIN = changbai.com——表示采用默认的域名为changbai.com,在tnsnames.ora中如果配置对应的解析,如果原来的数据库别名是oralocal(即网络服务名),那么,当启用这个参数后,在tnsnames中的配置要改成oralocal.changbai.com。在使用tnsping时或者sqlplus登录时,只需写前面的别名,系统会自动加上后面的域名来进行解析。

2.tnsnames.ora

这个文件放在客户端机器上,记录客户端访问数据库的本地配置,其实就是定义网络服务,只有当sqlnet.ora中有“NAMES.DIRECTORY_PATH= (TNSNAMES)”这样的字样时,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。

示例文件:
# tnsnames.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

HUINAMN =网路服务名
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 108.108.108.108)(PORT = 1521))访问数据库使用的协议,数据库计算机的主机名或IP地址,数据库的端口号
    )
    (CONNECT_DATA =
      (SID = HN)数据库实例名,前提是所连接的数据库是Oracle8或更低版本
    )
  )
CHANGBAI =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 208.208.208.208)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = CB)数据库服务名,即全局数据库名
    )
  )
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)使用专用服务器模式去连接,这需要跟服务器的模式匹配,如果没有就根据服务器的模式自动调节
      (SERVICE_NAME = orcl)
    )
  )

二、服务器端设置
listener.ora

它是listener监听器进程的配置文件。关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
  
示例文件:
# listener.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =这里定义LISTENER进程为哪个实例提供服务
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER =监听器的名字,一台数据库可以有不止一个监听器
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))监听器监听的协议,IP,端口等
      (ADDRESS = (PROTOCOL = TCP)(HOST = dabeng)(PORT = 1521))
    )
  )

上面的例子是一个最简单的例子,但也是最普遍的。一个listener进程为一个数据库实例(SID)提供服务。

三、总结

上面说到的三个文件都可以通过图形的配置工具来完成配置:Database Configuration Assistant,Net Configuration Assistant
  
具体的配置可以尝试一下,然后来看一下配置文件,这样一来总体结构就有了,是当你输入sqlplus zidi/zidi@changbai的时候

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

换个角度理解:
changbai是我们连接远端数据库用到的服务命名,但是最终必须转化为host:port:servide_name这样的连接字串,而这个转化可以理解为是翻译的过程,而要想翻译成功,则必须选择好翻译方法,那么sqlnet.ora就是我们用来选择翻译方法的,其中的NAMES.DIRECTORY_PATH= (TNSNAMES) 就是我们选择的命名解析方法; tnsnames.ora是翻译方法中的一种——本地命名解析方法的配置文件,就好像我们选择了查字典方法,这个文件就是我们的字典一样里面存放着所有服务命名对应的连接字串;至于listener.ora则是负责接受我们请求的负责任人——连接地址配置文件,里面包括了连接负责人的连接地址,也放着经过他允许可以连接的数据库信息。这样就构成了Oracle的网络架构。

分享到:
评论

相关推荐

    JAVA连接Oracle数据库需要用到的jar文件

    使用thin driver,Java应用程序可以直接通过网络与Oracle数据库服务器通信。主要的JAR文件是`ojdbc.jar`,例如`ojdbc8.jar`或`ojdbc7.jar`,具体版本取决于你的Oracle数据库版本。 2. ** JDBC OCI Driver (Oracle ...

    oracle12c用到的jar包.zip

    本压缩包“oracle12c用到的jar包.zip”包含了与Oracle 12c数据库配合使用的几个关键JAR文件,主要用于Kettle工具的数据集成工作。 Kettle,也称为Pentaho Data Integration(PDI),是一款强大的ETL(Extract, ...

    安装Oracle12c响应文件配置文件

    这个文件可能包含了在Red Hat系统上配置Oracle所需的步骤,比如设置环境变量、修改启动脚本、添加用户权限、调整系统资源限制等。 在安装Oracle 12c时,首先要确保系统满足硬件和软件需求,包括操作系统版本、内核...

    kettle连接oracle所需jar包

    总结,Kettle连接Oracle需要正确的JDBC驱动(如ojdbc.jar),将其置于Kettle的类路径下,并在Kettle的数据库连接设置中正确配置Oracle的连接信息。通过这些步骤,你可以充分利用Kettle的强大功能进行数据操作和管理...

    文件批量导入数据到oracle数据库

    描述中提到的"读取某个目录下的所有文件",这是文件读取操作,通常会用到编程语言如Java、Python、Perl等的文件I/O函数。例如,在Java中,可以使用`java.io.File`类遍历目录,`BufferedReader`或`Scanner`读取文件...

    MySQL导出数据并通过sqlldr导入oracle

    同时代码还会生成sqlldr命令需要用到的control文件和bat文件,以及连接Oracle的配置文件,只要将MySQL导出的数据文件合到一起,执行bat文件,即可完成数据导入到Oracle的任务。所有文件都是以导入导出的那张表的表名...

    SSH3+Oracle数据库实现文件上传下载的项目

    部署时,要考虑服务器配置、数据库连接、环境变量等设置。 通过这个项目,开发者可以深入理解SSH3框架的协同工作,以及如何与Oracle数据库集成来实现文件管理。同时,也可以学习到文件上传下载的实现细节,以及如何...

    oracle11g下用到的RPM

    5. **设置环境变量**:在安装过程中,需要配置一些环境变量,如`ORACLE_HOME`, `PATH`, `LD_LIBRARY_PATH`等,以便系统能找到Oracle相关的可执行文件和库。 6. **安装RPM包**:使用`rpm`命令来安装Oracle 11g的RPM...

    LINUX 64位ORACLE 11G安装BBED所需文件

    在这个场景下,"LINUX 64位ORACLE 11G安装BBED所需文件"的描述意味着我们要讨论的是在64位Linux环境下安装Oracle 11g数据库时需要用到的特定工具——BBED。 BBED(Binary Buffer Editor)是Oracle提供的一种二进制...

    oracle基础教程

    第3章 ORACLE数据库的网络应用 46 3.1 SQL*Net产品介绍 46 3.2 配置客户机/服务器结构 47 3.2.1 配置listener.ora 47 3.2.2 配置tnsnames.ora文件 48 第4章 常用任务示例 51 4.1 如何恢复被误删的数据文件 51 4.2 ...

    instantclient文件无需安装oracle即可使用plsql

    用户只需将下载的Instant Client文件解压到指定目录,并在PL/SQL Developer的设置中指向这个目录,就可以实现与Oracle数据库的通信。 以下是使用Oracle Instant Client和PL/SQL Developer的详细步骤: 1. **下载...

    Oracle8安装步骤

    3. 设置环境变量:配置ORACLE_HOME、PATH、TNS_ADMIN等环境变量,以便系统能找到Oracle的相关文件。 三、安装步骤 1. 运行安装程序:找到下载的Oracle8安装文件,双击运行。 2. 欢迎界面:点击"下一步",接受许可...

    Oracle 11g的安装PDF

    解决这个问题通常需要检查Oracle的网络配置文件,如listener.ora和tnsnames.ora文件,确保其中的服务名和服务描述符正确配置。如果监听服务出现问题,可以通过停止和启动监听服务命令(lsnrctl stop、lsnrctl start...

    常用的oracle表和视图

    - `DBA_DATA_FILES`: 数据文件设置信息。 - `DBA_TEMP_FILES`: 临时数据文件信息。 - `DBA_ROLLBACK_SEGS`: 回滚段信息。 - `DBA_TS_QUOTAS`: 用户表空间配额信息。 - `DBA_FREE_SPACE`: 数据库空闲空间信息。 ...

    linux +oracle 环境搭建

    8. **环境变量配置(续)**:在Oracle用户的`.bash_profile`文件中设置环境变量,包括`ORACLE_BASE`、`ORACLE_HOME`、`ORACLE_SID`,以及`PATH`和`LD_LIBRARY_PATH`,确保Oracle命令的可用性和动态库的加载。...

    struts2+spring+hibernate+oracle 需要用到的基本jar包

    - 配置主要包括:Struts2的配置文件(struts.xml)、Spring的配置文件(applicationContext.xml)、Hibernate的配置文件(hibernate.cfg.xml)。 - 在整合过程中,Spring通常作为“粘合剂”,管理Struts2和...

    sqlplus连接oracle问题

    Oracle的网络连接依赖于listener.ora和tnsnames.ora这两个配置文件,它们一般位于数据库安装目录下的NETWORK\ADMIN文件夹内。由于实例中使用的是instantclient,所以需要将listener.ora和tnsnames.ora两个文件拷贝到...

    ORACLE RAC安装依赖包

    相关的网络配置文件如`ifcfg-ethX`需要正确设置。 6. **Shared File System**:虽然ASM可以替代传统文件系统,但在某些场景下仍可能需要NFS或GFS等共享文件系统来存放数据库归档日志、备份等非关键数据。 7. **...

Global site tag (gtag.js) - Google Analytics