- 总结:
1
.三个配置文件都是放在$ORACLE_HOME\network\admin目录下。
2
.sqlnet.ora确定解析方式
3
.listener.ora上设SID_NAME,通常用于JDBC访问,对应的错误码为12505
4
.tnsnames.ora上设SERVICE_NAME,通常用于linux
sqlplus客户端,对应的错误码为12514
- sqlnet.ora
作用类似于linux或者其他unix的
nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串(connect
descriptor)
假如sqlnet.ora 是下面这个样子
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME) |
当客户端输入sqlplus sys/oracle@orcl时, 就会首先在 tnsnames.ora文件中找orcl的记录.如果没有相应的记录则尝试把orcl当作一个主机名 括号中还有其他选项,如LDAP等,但HOSTNAME,LDAP通常并不常用,通常只设TNSNAME即可. |
- tnsnames.ora
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) #对应的SOCKET信息 (CONNECT_DATA = (SERVER = DEDICATED) |
2.
配tnsname.ora里面的service_name,可以用下面命令查看:
SQL> show parameter service_name; NAME |
3.
tnsnames.ora是为oracle客户端访问数据库而设的,不是为了远程客户端连接oracle 服务器而设的
删除tnsnames.ora [oracle@oracle admin]$ rm tnsnames.ora |
重启oracle |
本地客户端无法访问数据库了 [oracle@oracle ~]$ sqlplus scott/scott@orcl SQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 16 17:32:41 Copyright (c) 1982, 2005, Oracle. All rights ERROR: |
在远端(另一台机器) 通过sqlplus方式连接oracle数据库,没问题 通过jdbc连接orcle数据库,没问题 |
listener.ora
listener进程接受远程对数据库的接入请求
Listener.ora
#SID_LIST_LISTENER 定义, 定义LISTENER进程监听SID SID_LIST_LISTENER = (SID_LIST = #可以监听多个SID,都存在一个SID表中 (SID_DESC = |
JDBC连接请求的URL 要对应Listener.ora
jdbc:oracle:thin:@192.168.3.98:1521:orcl |