一、tnsnames.ora
用途:(用于客户端)告诉oracle client应该从哪连、连到哪。
1 2 3 4 5 6 7 8 |
TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ip/host name)(PORT = 1521)) (CONNECT_DATA = # (SERVER = DEDICATED) #这一行可以不加,加上的意思是强制使用专有服务器 (SERVICE_NAME = test) #这个是lsnrctl中注册的实例名,lsnrctl status查看 ) ) |
二、listener.ora
用途:(用户server端)告诉oracle数据库server都需要监听哪些实例。
1 2 3 4 5 6 7 8 9 |
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = host name/ip)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ADR_BASE_LISTENER = /oracle |
三、Oracle TNS简述
什么是TNS?
TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC.如果通过TNS连接Oracle,那么客户端必须安装Oracle client程序.
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:配置客户端到服务器端的连接服务,包括客户端要连接到的服务器和数据库的配置信息.
Oracle所有的TNS配置文件都存放在
unix/linux: $ORACLE_HOME/network/admin windows: %ORACLE_HOME%networkadmin
TNS有那些配置工具?
我们可以手动配置,也可以通过Oracle Net Configuretion Assitant配置.
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地址.