Oracle TNS配置浅析

1. 什么是TNS?

TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC.如果通过TNS连接Oracle,那么客户端必须安装Oracle client程序.

2. TNS有那些配置文件?

TNS的配置文件包括服务器(安装Oracle数据库的机器)端和客户端两部分.服务器有listener.ora,sqlnet.ora,tnsnames.ora,如果通过OCM(Oracle Connection Manage)和域名服务管理客户端连接,服务器端可能还包括cman.ora等文件;客户端有tnsnames.ora,sqlnet.ora。

listener.ora: 监听器配置文件,成功启动后是驻留在服务器端的一个服务.什么是监听器?监听器是用来侦听客户端的连接请求以及建立客户端和服务器端连接通道的一个服务程序.默认情况下Oracle在1521端口上侦听数据库连接请求.

sqlnet.ora: 用来管理和约束或限制tns连接的配置,通过在该文件中设置一些参数,可以管理TNS连接.根据参数作用的不同,需要分别在服务器和客户端配置.

tnsnames.ora: 配置客户端到服务器端的连接服务,包括客户端要连接到的服务器和数据库的配置信息.

3. Oracle所有的TNS配置文件存放位置

unix/linux: $ORACLE_HOME/network/admin

windows: %ORACLE_HOME%\network\admin

4. TNS有那些配置工具?

我们可以手动配置,也可以通过Oracle Net Configuretion Assitant配置.

5. OracleTNS配置流程

首先在Oracle server端安装完成之后,因该先着手配置LISTENER,listenerr是进行Oracle通讯的首要组件,紧接着在客户端安装Oracle client,同时配置tnsnames.ora文件.

LISTENER(监听器)配置:

监听器包括两个部分:Oracle要监听的地址、端口、通讯协议;Oracle要监听的数据库实例.非RAC环境下,LISTENER只能监听本服务器的地址和实例,RAC环境下,LISTENER还可以监听远程服务器.每个数据库最少要配置一个监听器。

LISTENER=
 (DESCRIPTION=
  (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
    (ADDRESS=(PROTOCOL=ipc)(KEY=extproc))
  )
 )
SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (SID_NAME=plsextproc)
      (ORACLE_HOME=/oracle10g)
      (PROGRAM=extproc)
     )
    (SID_DESC=
     (SID_NAME=mayp)
     (ORACLE_HOME=/oracle10g)
    )
   )

listener部分配置了Oracle要监听的地址信息;SID_LIST_LISTENER部分配置了Oracle需要监听的实例.HOST参数即可以是hostname,也可以是ip地址.在一个多IP的服务器上可以配置listener同时监听多个地址.比如下面的配置:

LISTENER=
 (DESCRIPTION=
   (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.10)(PORT=1521))
      (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.1) (PORT=1521))
   )
  )

或者可以配置多个监听器,分别监听不同的IP地址.

Oracle Net支持的通讯协议有:

 ■ TCP/IP

 ■ TCP/IP with SSL

 ■ Named Pipes

  ■ SDPOracle 9i引入了动态监听服务注册,指的是我们不需要在listener.ora中配置oracle要监听的数据库实例信息,数据库启动的时候, PMON进程可以自动注册当前数据库实例到listener的监听列表.也就是说上面的SID_LIST_LISTENER部分就不用配置了。使用动态监听服务器端必须满足以下条件:

■  数据库必须设置INSTANCE_NAME和SERVICE_NAME参数;

■  监听器采用默认的TCP协议并使用1521端口进行监听;

■ 如果在配置监听器时采用了其他通讯协议或者侦听端口,进行以下设置告诉Oracle采用自定义监听器:

通过LOCAL_LISTENER参数明确设置当前使用的监听器,

在服务器端都tnsnames.ora文件中加入自定义监听器的配置信息.如果采用了OCM,那么还可以在cman.ora中加入监听器的配置信息.

LOCAL_LISTENER 可以通过ALTER SYSTEM动态设置.

ALTER SYSTEM SET LOCAL_LISTENER=’listener_alias’;一个动态监听配置的示例:

6. TNS配置文件具体配置

listener.ora文件的配置:

LISTENER1 =
  (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.205.73)(PORT = 1421))
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.64)(PORT = 1421))
        (ADDRESS = (PROTOCOL = IPC)(KEY = extproc))
      )
   )

TNS配置:

我们说的TNS配置其实就是对tnsnames.ora文件的配置,tnsnames.ora 有客户端的配置,也有服务器端的配置.客户端和服务器端配置的区别是因为服务器端的配置跟LISTENER的配置相关.下面是一个简单的配置示例:

mayp =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbtest)(PORT = 1421))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = mayp)
      (SERVER = DEDICATED)
    )

同样tnsnames.ora也包括两部分,ADDRESS_LIST 部分包含了远程数据库服务器的监听地址信息,也就是要告诉TNS远程数据库可通过乃些地址和CLIENT通讯;CONNECT_DATA 定义了CLIENT要连接的数据库,还有数据库的连接方式,(专用或共享)。

在一个多ip环境中,TNS也可以配置多个远程IP地址:

mayp =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbtest)(PORT = 1421))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.64)(PORT = 1421))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = mayp)
      (SERVER = DEDICATED)
    )
  )

一般在多IP环境中,还可以在TNS端配置load_balance和failover特性.这些特性在RAC环境下比较流行,load_balance特性可以让client在连接数据库是选择任意地址进行连接,是各地址的连接均衡.failover开启Oracle特有的 TAF特性,TAF为Transparent Application Failover的缩写.load_balance可以在客户端配置,也可以在服务器端配置.

下面是一个客户端的配置示例:

mayp =
(DESCRIPTION =
   (ADDRESS_LIST =
     (LOAD_BALANCE=ON)
     (FAILOVER=ON)
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.205.73)(PORT = 1421))
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.64)(PORT = 1421))
   )
   (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MAYP)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
      )
   )
)

sqlnet.ora的配置:
sqlnet.ora是个很重要的配置,他可以控制和管理Oracle连接的属性,根据参数作用的不同决定在客户端配置还是在server端配置.sqlnet.ora的配置是全局性的,也就说sqlnet.ora的配置是对所有的连接起作用,如果想对某个特殊的连接或服务进行约束或限制,可以在TNS配置相应参数.详细参数可以参考:Oracle® Database Net Services Reference

时间: 2024-08-24 05:25:46

Oracle TNS配置浅析的相关文章

oracle数据库tns配置方法详解

TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC.如果通过TNS连接Oracle,那么客户端必须安装Oracle client

Oracle如何配置监听

很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,并提出一些客户终端无法连接服务器端的解决思路. 一.监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求.既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的. 二.本地服务名(Tnsname) Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务

MyEclipse+Weblogic+Oracle+PLSQL配置注意事项

Weblogic配置详情:<Weblogic安装与配置图文详解>Oracle+PLSQL配置详情:<PL/SQL访问远程Oracle服务器(多种方式)>MyEclipse配置:<Eclipse在开发Web项目时的配置优化>,<教你破解MyEclipse到2016年[图文详解]>虽然总结过以上开发环境的配置及优化,但是在使用的过程中依旧出现了或多或少.大大小小的问题,统一记录一下.1.MyEclipse导入工程.File-->Import-->Ge

9、oracle网络配置

oracle网络配置: 1.监听的相关概念 路径: $ORACLE_HOME/network/admin/listener.ora $ORACLE_HOME/network/admin/sqlnet.ora $ORACLE_HOME/network/admin/samples/tnsnames.ora tnsping orcl 请求服务名 用户进程 名词解析(user process)----请求连接请求-----listener-服务进程(server process) 配置和管理 oracl

Oracle 远程访问配置

服务端配置 如果不想自己写,可以通过 Net Manager 来配置. 以下配置文件中的 localhost 改为 ip 地址,否则,远程不能访问. 1.网络监听配置 # listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST

Oracle TNS Listener Remote Poisoning

Oracle TNS Listener Remote Poisoning 远程数据投毒漏洞(CVE-2012-1675) 1.漏洞简介: 允许攻击者在不提供用户名/密码的情况下,向远程“TNS Listener”组件处理的数据投毒的漏洞. COST 是class of secure transports 的缩写.是为了控制实例注册提供的一种安全控制机制.其作用是对于一个确定的listener,限制哪些实例通过哪些协议可以进行注册.这将避免有其他远程实例进行恶意注册,并由此产生信息泄露等风险.它通

PLSQL Develope连接oracle数据库配置

首先我们在讲PLSQL Develope连接oracle数据库配置之前,先讲下如果不用PLSQL Develope连接oracle数据库,那该怎么办,那就是在本机安装oracle数据库,不过这个对于配置渣的笔记本来说是个挑战,而且界面长时间不操作就会卡死,只能强制关闭,用起来非常不方便,如果笔记本配置高,且不想费力用PLSQL,那可以考虑直接安装oracle客户端. 下面我们来看看如何用PLSQ连接oracle. 1.自行百度下载plsql客户端,个人比较喜欢从CSDN上下载,你们随意.下载好后

python操作oracle数据库环境配置

1. 下载安装cx_oracle安装包 Python操作Oracle数据库,首先需要安装cx_Oracle包,下载地址如下:   http://cx-oracle.sourceforge.net/    http://sourceforge.net/projects/cx-oracle/files/5.1.2/ 本系统采用的是CentOS5.x系列的操作系统,python版本是2.4,于是下载支持python2.4版本的安装包. 2. 下载oracle客户端,是oracle官方网站下载. 下载对

[转]Oracle DB 配置备份设置

? 使用Oracle Enterprise Manager 配置备份设置 ? 启用控制文件自动备份 ? 配置备份目标 ? 为磁带目标分配通道 ? 配置备份优化 ? 创建压缩备份 ? 创建加密备份 配置RMAN 的永久性设置 ? RMAN 有预设的默认配置设置. ? 使用CONFIGURE命令可以: – 配置自动通道 – 指定备份保留策略 – 指定要创建的备份副本数 – 将默认备份类型设置为BACKUPSET或COPY – 限制备份片段的大小 – 在备份中排除表空间 – 启用和禁用备份优化 – 配