Oracle的网络三大配置文件(sqlnet.ora、tnsnames.ora、listener.ora)
blog文档结构图:
1 说明
为了使得外部进程能够访问Oracle 数据库则必须配置Oracle 网络服务器环境配置, Oracle 网络服务器环境是通过配置listener.ora 、sqlnet.ora 和 tnsnames.ora 共三个文件来进行的。由于oracle数据库是一个客户端服务器的软件,所以,首先需要接收来自客户端的连接请求,服务器就必须配置监听器;其次,客户端要连接到某个制定的服务器,就必须配置到服务器的tns服务名。
有关oracle的三个网络配置文件分别为 listener.ora、sqlnet.ora、tnsnames.ora ,无论linux还是windows下,都是放在$ORACLE_HOME\network\admin目录下。
2 sqlnet.ora
sqlnet.ora作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串。
例如我们客户端输入
sqlplus sys/oracle@orcl
假如我的sqlnet.ora是下面这个样子
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那么,客户端就会首先在tnsnames.ora文件中找orcl的记录.如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例,当然我这里orcl并不是一个主机名
如果我是这个样子
NAMES.DIRECTORY_PATH= (TNSNAMES)
那么客户端就只会从tnsnames.ora查找orcl的记录,括号中还有其他选项,如LDAP等并不常用。
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
2.1 参数官方文档说明
http://docs.oracle.com/cd/E11882_01/network.112/e10835/sqlnet.htm#NETRF182
2.2 EZCONNECT方式连接数据库
如果对tnsnames.ora文件没有做充分的配置,也可以使用Oracle的Easy Connect Naming Method方法测试数据库是否可以访问。
username/password@host[:port][/service_name][/instance_name]
username/password@[//]host[:port][/service_name]
注意:如果想要使用Easy Connect Naming Method方法测试数据库的连通性,需要在sqlnet.ora文件中增加“NAMES.DIRECTORY_PATH= (EZCONNECT)”信息,否则该功能将无法使用,一般配置如下:
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
例如:
listner配置TCP协议,使用主机名,端口为1521,service_names=orclasm.lhr.com
连接:
C:\Users\Administrator>sqlplus lhr/lhr@192.168.59.130:1521/orclasm.lhr.com
SQL*Plus: Release 11.2.0.1.0 Production on 星期一 2月 2 10:35:52 2015
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL>
测试连通性:
C:\Users\Administrator>tnsping 192.168.59.130:1521/orclasm.lhr.com
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 02-2月 -2015 10:39:03
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
D:\Program files\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN\sqlnet.ora
已使用 EZCONNECT 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=orclasm.lhr.com))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.59.130)(PORT=1521)))
OK (0 毫秒)
C:\Users\Administrator>
plsql developer 连接: 填写:192.168.59.130:1521/orclasm.lhr.com
登录后看到: