oracle数据库tns配置方法详解

TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端链接的一个工具,在大多数状况下客户端和数据库要通信,必须配置TNSsql

 

TNS简要介绍与应用数据库

Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是所有,不要把TNS看成只是监听器。服务器

TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端链接的一个工具,在大多数状况下客户端和数据库要通信,必须配置TNS,固然在少数状况下,不用配置TNS也能够链接Oracle数据库,好比经过JDBC。若是经过TNS链接Oracle,那么客户端必须安装Oracle client程序。网络

Oracle当中,若是想访问某个服务器,必需要设置TNS,它不像SQL SERVER那样在客户端自动列举出在局域网内全部的在线服务器,只需在客户端选择须要的服务器,而后使用账号与密码登陆便可。而Oracle不能自动列举出网内的服务器,须要经过读取TNS配置文件才能列出通过配置的服务器名。tcp

配置文件名通常为:tnsnames.ora,默认路径:%ORACLE_HOME%\network\admin\tnsnames.ora工具

上图中的CGDB和STDCG就是对应的TNS,HOST是指向数据库服务器的IP,固然局域网内用计算机名称也是能够的。经过客户端Net Manager建立一个链接到数据库服务器的链接服务时,实际上就是在tnsnames.ora文件中增长了一个TNS的内容。spa

TNS的详细配置文件server

TNS的配置文件包括服务器端和客户端两部分。服务器端有listener.ora、sqlnet.ora和tnsnames.ora,若是经过OCM(Oracle Connection Manage)和域名服务管理客户端链接,服务器端可能还包括cman.ora等文件;客户端有tnsnames.ora,sqlnet.ora。Oracle全部的TNS配置文件的默认路径:%ORACLE_HOME%\network\admin域名

listener.ora:监听器配置文件,成功启动后是驻留在服务器端的一个服务。监听器是用来侦听客户端的链接请求以及创建客户端和服务器端链接通道的一个服务程序。默认状况下Oracle在1521端口上侦听客户端链接请求。it

sqlnet.ora:用来管理和约束或限制tns链接的配置,经过在该文件中设置一些参数,能够管理TNS链接。根据参数做用的不一样,须要分别在服务器和客户端配置.。

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

TNS配置

能够经过Oracle Net Configuretion Assitant配置TNS,也能够手动配置。首先在Oracle服务器端安装完成以后,应该先着手配置LISTENER,LISTENER是进行Oracle通信的首要组件,紧接着在客户端安装Oracle client,同时配置tnsnames.ora文件。

首先监听器包括两个部分:Oracle要监听的地址、端口、通信协议;Oracle要监听的数据库实例,非RAC环境下,LISTENER只能监听本服务器的地址和实例,RAC环境下,LISTENER还能够监听远程服务器。每一个数据库最少要配置一个监听器。(注:RAC环境,指的是Oracle服务器集群配置的环境)

 

 

LISTENER部分配置了Oracle要监听的地址和端口信息;该文件中还会包括SID_LIST_LISTENER部分,这部分配置了Oracle须要监听的实例。(注:在上述截图中并无SID_LIST_LISTENER这一部分,这是由于Oracle自9i版本引入了动态监听服务注册,在数据库启动时,会自动注册当前数据库实例到监听列表,因此无需配置SID_LIST_LISTENER部分了)

HOST参数能够是Oracle服务器主机名称,也能够是相应的IP地址。在一个多IP的服务器上能够配置listener同时监听多个地址,好比下面的配置:LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.11)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.11) (PORT=1521))) ),或者能够配置多个监听器,分别监听不一样的IP地址。

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

tnsnames.ora也包括两部分,ADDRESS_LIST 部分包含了Oracle数据库服务器的监听地址信息,也就是要告诉TNS数据库可经过这个地址和CLIENT进行通信;CONNECT_DATA 定义了CLIENT要链接的数据库,以及数据库的链接方式,(专用或共享)。

在一个多IP环境中,TNS也能够配置多个远程IP地址:CGDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.55)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.56)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = CGDB) (SERVER = DEDICATED) ) )

sqlnet.ora是个很重要的配置,它能够控制和管理Oracle链接的属性,根据参数做用的不一样决定在客户端配置仍是在server端配置。sqlnet.ora的配置是全局性的,也就说sqlnet.ora的配置是对全部的链接起做用,若是想对某个特殊的链接或服务进行约束或限制,能够 在TNS配置相应参数。

相关文章
相关标签/搜索