• 总结:
    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
  1. 提供tnsname到主机名或者ip的对应

ORCL =
 (DESCRIPTION =
     (ADDRESS = (PROTOCOL =
TCP)(HOST = 127.0.0.1)(PORT =
1521))   
   
#对应的SOCKET信息
    
 (CONNECT_DATA
=

  (SERVER = DEDICATED)  
   
   
   
#使用专用服务器模式去连接
          
 (SERVICE_NAME =
orcl)      
    #这里填入对应
service_name,
          
   
   
   
   
   
   
   
    
可以通过"SQLPLUS>show parameter service_name;"查看
 
)

  
SALES =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.188.219)(PORT = 1521))
    (CONNECT_DATA =
    
  (SERVER = DEDICATED)
    
  (SERVICE_NAME =
sales)
     )
 )

2.
配tnsname.ora里面的service_name,可以用下面命令查看:

SQL> show
parameter service_name;

NAME                                
TYPE       
VALUE
------------------------------------ -----------
------------------------------
service_names                       
string     
orcl

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
2010

Copyright (c) 1982, 2005, Oracle.  All rights
reserved.

ERROR:
ORA-12154: TNS:could not resolve
the connect identifier specified

在远端(另一台机器)
通过sqlplus方式连接oracle数据库,没问题
通过jdbc连接orcle数据库,没问题 

listener.ora
listener进程接受远程对数据库的接入请求
Listener.ora

   
#SID_LIST_LISTENER 定义, 定义LISTENER进程监听SID
  SID_LIST_LISTENER =
  (SID_LIST =   
   
   
   
   
   
   
#可以监听多个SID,都存在一个SID表中

  (SID_DESC =
      
 (GLOBAL_DBNAME =
boway)      
  # GLOBAL_DBNAME不是必需的除非使用HOSTNAME做数据库连接
     
  (ORACLE_HOME = E:\oracle\product\10.1.0\Db_2)
     
  (SID_NAME = orcl)
    )
  )
  
  #监听器定义,一台数据库可以有不止一个监听器
  LISTENER =
    (DESCRIPTION =
      
  (ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))
     )

JDBC连接请求的URL 要对应Listener.ora 

 jdbc:oracle:thin:@192.168.3.98:1521:orcl
原文链接:http://blog.sina.com.cn/s/blog_6151984a0100m8pu.html

oracle的sqlnet.ora,tnsnames.ora,listener.ora三个配置文件的更多相关文章

  1. oracle--本地网络配置tnsnames.ora和监听器listener.ora

    文件tnsnames.ora 是给orcl客户端使用 配置本地网络服务:(客户端) 第一种使用暴力方式直接操作: 修改:C:\app\Administrator\product\11.2.0\dbho ...

  2. ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)

    不论是单实例还是RAC,对于非缺省端口下(1521)的监听器,pmon进程不会将service/instance注册到监听器,即不会实现动态注册.与单实例相同,RAC非缺省端口的监听器也是通过设置参数 ...

  3. oracle的listener.ora sqlnet.ora tnsnames.ora三个文件的关联性

    学习:http://www.cnblogs.com/william-lee/archive/2010/10/20/1856261.html 之前因为安装的是windows server 2008 r2 ...

  4. [oracle] listener.ora 、sqlnet.ora 、tnsnames.ora

    路径 $ORACLE_HOME/network/admin sqlnet.ora(客户及服务器端) 作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个 ...

  5. oracle的sqlnet.ora , tnsnames.ora , Listener.ora 文件的作用(转)

    oracle网络配置三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下.1. sqlnet.o ...

  6. PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释

    PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...

  7. oracle: listener.ora 、sqlnet.ora 、tnsnames.ora的配置及例子

    1.解决问题:TNS或者数据库不能登录.      最简单有效方法:使用oracle系统提供的工具 netca 配置(把原来的删除掉重新配置)     $netca  2.然而,仍有疑问:如何指定'l ...

  8. oracle三个连接配置文件 listener.ora、sqlnet.ora、tnsnames.ora

    关于PLSQL连接ORACLE配置字符串 首先要讲一下下面的一些知识 1.ORACLE_SID:(ORACLE SYSTEM IDENTIFIER) Oracle实例是由SGA和一组后台进程组成的,实 ...

  9. listener.ora/sqlnet.ora/tnsnames.ora配置文件详解

    oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下. 英文说明: The ...

随机推荐

  1. Html中行内样式的设置

    Html中行内样式的设置.. <html> <head> <title>显示的页面选项卡标题</title> <style type=" ...

  2. 利用反射手写代码实现spring AOP

    前言:上一篇博客自己动手编写spring IOC源码受到了大家的热情关注,在这里博客十分感谢.特别是给博主留言建议的@玛丽的竹子等等.本篇博客我们继续,还是在原有的基础上进行改造.下面请先欣赏一下博主 ...

  3. sqlalchemy默认时间

    我查到的sqlalchemy默认时间有2种: from sqlalchemy.sql import func time_created = Column(DateTime(timezone=True) ...

  4. 每日学习笔记:js中可以直接用id名调用的问题?

    在JavaScript中,标准的id选择器调用语法是: document.getElementById('myid').style.width = pc + "%"; 但是,今天发 ...

  5. php数组函数分析--array_column

    array_column 官方地址:array_column array_column 只能在 PHP版本5.5以上的运行,5.3是不支持这个函数的.如果5.3使用会报: Fatal error: C ...

  6. tyvj1034 尼克的任务

    描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成.尼克的一个工作日为N分钟,从第一分钟开始到第N ...

  7. Linux C 堆内存管理函数malloc()、calloc()、realloc()、free()详解

    C 编程中,经常需要操作的内存可分为下面几个类别: 堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取的方式都是由编译器自动执行的 堆区(heap):一般 ...

  8. Linux进程间通信(四):命名管道 mkfifo()、open()、read()、close()

    在前一篇文章—— Linux进程间通信 -- 使用匿名管道 中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关 ...

  9. 1.2Web API 2中的Action返回值

    本主题描述 ASP.NET Web API 将返回值转换从一个控制器动作到 HTTP 响应消息. 一个 Web API 控制器动作可以返回下列任一操作 ︰ 1.void 2.IHttpActionRe ...

  10. sujection重构

    def create @subjection = @subject.subjections.new if params[:video_or_show_id].length == 20 show = S ...