TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC.如果通过TNS连接Oracle,那么客户端必须安装Oracle client程序.
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:配置客户端到服务器端的连接服务,包括客户端要连接到的服务器和数据库的配置信息.
Oracle所有的TNS配置文件都存放在
unix/linux: $ORACLE_HOME/network/admin
windows: %ORACLE_HOME%\network\admin
我们可以手动配置,也可以通过Oracle Net Configuretion Assitant配置.
首先在Oracle server端安装完成之后,因该先着手配置LISTENER,listenerr是进行Oracle通讯的首要组件,紧接着在客户端安装Oracle client,同时配置tnsnames.ora文件.
首先监听器包括两个部分: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
■ SDP
Oracle 9i引入了动态监听服务注册,指的是我们不需要在listener.ora中配置oracle要监听的数据库实例信息,数据库启动的时候, PMON进程可以自动注册当前数据库实例到listener的监听列表.也就是说上面的SID_LIST_LISTENER部分就不用配置了。使用动态监听服务器端必须满足以下条件:
■ 数据库必须设置INSTANCE_NAME和SERVICE_NAME参数;
■ 监听器采用默认的TCP协议并使用1521端口进行监听;
■ 如果在配置监听器时采用了其他通讯协议或者侦听端口,进行以下设置告诉Oracle采用自定义监听器:
1、通过LOCAL_LISTENER参数明确设置当前使用的监听器,
2、在服务器端都tnsnames.ora文件中加入自定义监听器的配置信息.如果采用了OCM,那么还可以在cman.ora中加入监听器的配置信息.
.LOCAL_LISTENER 可以通过ALTER SYSTEM动态设置.
ALTER SYSTEM SET LOCAL_LISTENER=’listener_alias’;
一个动态监听配置的示例:
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))
)
)
LOCAL_LISTENER参数的配置(因为这里采用非1521的端口):
SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ------------ -----------
local_listener string listener1
tnsnames.ora的配置:
LISTENER1=
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL = TCP)(HOST = dbtest)(PORT = 1421)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.205.73)(PORT = 1421))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.64)(PORT = 1421))
)
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)
)
)
我们说的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)
)
)
)
相关推荐
oracle TNS配置方法 大家可以仿照里面来进行配置
### ORACLE-TNS协议分析详解 #### 一、TNS介绍 TNS(Transparent Network Substrate)协议是Oracle数据库系统中用于实现客户端与服务端之间通信的重要协议之一。该协议支持多种传输方式,包括TCP/IP协议、SSL加密...
oracle tns 配置文件 按这样配置一定行的 oracle tns 很吹若的东西
Oracle TNS Listener是Oracle数据库系统中用于监听客户端请求的关键组件。其基本功能是在网络上监听客户端发来的连接请求,并对这些请求做出响应。然而,TNS Listener也存在一系列安全漏洞,尤其是缓冲区溢出和配置...
Oracle TNS(Transparent Network Substrate)是Oracle数据库系统中用于网络连接的重要组件,它提供了一种方式来定义和管理数据库的网络服务名。TNS Names是TNS的一部分,它允许用户通过一个易于记忆的名称来访问...
Oracle TNS(Transparent Network Substrate)协议是Oracle数据库系统中用于网络通信的一种协议,它提供了数据库连接服务,允许客户端应用程序与远程Oracle服务器进行交互。在深入理解Oracle TNS协议解码之前,我们...
ORACLE数据库-TNS协议分析详解ORACLE数据库-TNS协议分析详解ORACLE数据库-TNS协议分析详解ORACLE数据库-TNS协议分析详解
### Oracle TNS浅析 #### 一、Oracle TNS简介 **TNS( Transparent Network Substrate)** 是Oracle Net的一部分,主要用于管理和配置Oracle数据库与客户端之间的连接。它为客户端提供了透明的网络通信机制,使得...
Oracle数据库-TNS连接是Oracle数据库系统中用于网络通信的关键组件,它允许客户端应用程序与服务器端的数据库进行交互。TNS,全称为Transparent Network Substrate,透明网络子结构,是Oracle数据库提供的一种网络...
oracle 的 orcl TNS,是oracle自带的TNS,丢失的可以及时找回
### Oracle TNS 配置详解 #### 一、Oracle TNS 概述 在 Oracle 数据库环境中,TNS(Transparent Network Substrate)是用于连接客户端应用程序到数据库服务器的关键组件之一。它提供了一种透明的方式,使得客户端...
ORACLE-TNS协议连接认证过程与包分析
oracle,TNS协议适配器错误,oracle配置
如果不能连接到数据库,则在 `tnsname.ora` 文件中的网络服务名(net service)后面加上 Oracle 数据库的 `DB_DOMAIN` 参数值,通过用 `sqlplus> show parameter db_domain` 命令察看。此处 `db_domain` 参数值为 `...
1234 SolutionRecommendations for protecting against this vulnerability can be found at:My Oracle Support Note 1340831.1 for Oracle Database deployments that use Oracle Real Application Clusters (RAC)....
Oracle TNS(Transparent Network Substrate)协议是Oracle数据库系统中用于网络通信的一种协议,它为客户端应用程序提供了一种透明的方式连接到Oracle数据库服务器。TNS协议处理了网络连接的复杂性,使得用户无需...
### Oracle TNS 报错详解 #### 背景与问题描述 在Oracle数据库系统中,用户有时会遇到“ORA-12560:TNS:protocol adapter error”这一类错误提示,通常这类错误提示与网络连接问题相关联。根据提供的部分描述来看,...
Oracle 数据库监听器(LISTENER)和本地服务名(Tnsname)配置 本文主要介绍 Oracle 数据库监听器(LISTENER)和本地服务名(Tnsname)的配置,旨在帮助读者了解 Oracle 网络连接配置的主要组件和配置方法。 一、监听器...