Oracle数据库中的tnsnames.ora文件及网络配置

tnsnames.ora文件

在上一篇文章中讲到了 $ORACLE_HOME/network/admin 目录下的 tnsnames.ora 文件,我们通过toad软件来完成了一个链接的配置。配置之后的文件内容大致为:

1
2
3
4
5
6
7
8
9
10
11
12
QIBAO =  //QIBAO 是此链接的别名
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP) //协议方式默认为TCP
(HOST = 10.11.34.89) //数据库地址,也可以是主机名,但需要能正常解析到
(PORT = 1521) //数据库监听端口,需要和服务端listener.ora中配置一样,默认为1521
)
(CONNECT_DATA =
(SERVER = default)
(SERVICE_NAME = NEWDATABASE) // 链接的Schema名称,也可以成为具体的数据库库名称
)
)

TNS配置链接常用的使用方法是在sqlplus中使用命令行直接链接数据库,如下

1
sqlplus username/password@QIBAO 

@后面接的就是在TNSNAMES.ORA文件中配置的链接的别名。一些数据管理软件也可以通过读取本地Oracle client的tns配置来进行数据库链接,比如Toad for Oracle。

什么是TNS_ADMIN变量

TNS_ADMIN 一般配置为tnsnames.ora文件所在的目录。如$ORACLE_HOME/network/admin
他的作用是当你的计算机上存在多份tnsnames.ora配置文件的时候,手动更改TNS_ADMIN变量,来灵活的切换Oracle client优先选择的tnsnames.ora配置文件。TNS_ADMIN系统环境变量的优先级高于注册表,如果设置了环境变量,那么就会忽略注册表的值。

sqlnet.ora文件

sqlnet.ora文件中我们通常配置:连接数据库的认证方式和连接地址解析方式。通过Toad配置出来的sqlnet.ora文件如下。

1
2
3
4
5
6
7
8
9
10
SQLNET.AUTHENTICATION_SERVICES= (NTS) 
NAMES.DIRECTORY_PATH=(TNSNAME,EZCONNECT)
LOG_DIRECTORY_CLIENT=C:\Users\93031\AppData\Roaming\Quest Software\Toad for Oracle\16.1\User Files\LOG
SQLNET.EXPIRE_TIME=0
TRACE_FILELEN_CLIENT=100
TRACE_FILENO_CLIENT=3
TRACE_LEVEL_CLIENT=OFF
TRACE_TIMESTAMP_CLIENT=ON
TRACE_UNIQUE_CLIENT=ON
USE_DEDICATED_SERVER=OFF

SQLNET.AUTHENTICATION_SERVICES 指定启动一个或多个认证服务
- NONE: 不允许通过OS系统用户登录数据库,需要提供用户名及密码
- ALL: 允许所有的登录方式
- NTS: 允许本地操作系统用户认证

NAMES.DIRECTORY_PATH 指定CLIENT NAME解析方法的次序
- TNSNAME:从tnsnames.ora开始解析地址 sqlplus username/password@QIBAO
- EZCONNECT:可以使用简单的方式连接Oracle CONNECT username/password@host[:port][/service_name][/instance_name]

如果你是使用Toad中Direct的方式连接数据库,也记得在NAMES.DIRECTORY_PATH中添加上EZCONNECT。

listener.ora文件

服务器端的,不写了,用不上。