当前位置:  数据库>oracle

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

    来源: 互联网  发布时间:2017-04-12

    本文导语: 1.解决问题:TNS或者数据库不能登录。      最简单有效方法:使用Oracle系统提供的工具 netca 配置(把原来的删除掉重新配置)     $netca    2.然而,仍有疑问:如何指定'listener.ora'存放的目录?不要默认目录($ORACLE_HOME/network/...

1.解决问题:TNS或者数据库不能登录。
 
    最简单有效方法:使用Oracle系统提供的工具 netca 配置(把原来的删除掉重新配置) 
    $netca 

 
2.然而,仍有疑问:如何指定'listener.ora'存放的目录?不要默认目录($ORACLE_HOME/network/admin)

    在 '.profile' 中加入

  • TNS_ADMIN=/f01/oracle11/app/oracle/product/8.0.6/network/admin   
  • export TNS_ADMIN   
  • 3.介绍三个配置文件

        1)listener.ora

        2)sqlnet.ora

        3)tnsnames.ora

        此三文件都是放在$ORACLE_HOME/network/admin目录下。 

    1)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等并不常用。

    2)Tnsnames.ora(客户及服务器端)

            这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似
      
      NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。
      
      例子中有两个,ORCL 对应的本机,SALES对应的另外一个IP地址,里边还定义了使用主用服务器还是共享服务器模式进行连接,一句一句写如下:   
      

     
  • #你所要连接的时候输入得TNSNAME    
  •      
  •   ORCL =   
  •      
  •   (DESCRIPTION =   
  •      
  •   (ADDRESS_LIST =   
  •      
  •   #下面是这个TNSNAME对应的主机,端口,协议   
  •      
  •   (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))   
  •      
  •   )   
  •      
  •   (CONNECT_DATA =   
  •      
  •   #使用专用服务器模式去连接需要跟服务器的模式匹配,如果没有就根据服务器的模式   
  •      
  •   #自动调节   
  •      
  •   (SERVER = DEDICATED)   
  •      
  •   #对应service_name,SQLPLUS>show parameter service_name;   
  •      
  •   #进行查看   
  •      
  •   (SERVICE_NAME = orcl)   
  •      
  •   )   
  •      
  •   )   
  •      
  •   #下面这个类似   
  •      
  •   SALES =   
  •      
  •   (DESCRIPTION =   
  •      
  •   (ADDRESS_LIST =   
  •      
  •   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.188.219)(PORT = 1521))   
  •      
  •   )   
  •      
  •   (CONNECT_DATA =   
  •      
  •   (SERVER = DEDICATED)   
  •      
  •   (SERVICE_NAME = sales)   
  •      
  •   )   
  •      
  •   )   
  • 3)listener.ora(服务器端) --listener监听器进程的配置文件

      关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
      
      Listener.ora文件的例子   
      

     
  • #listener.ora Network Configuration File: #E:/oracle/product/10.1.0/Db_2/NETWORK/ADMIN/listener.ora    
  •      
  •   # Generated by Oracle configuration tools.   
  •      
  •   #下面定义LISTENER进程为哪个实例提供服务   
  •      
  •   #这里是ORCL,并且它对应的ORACLE_HOME和GLOBAL_DBNAME   
  •      
  •   #其中GLOBAL_DBNAME不是必需的除非使用HOSTNAME做数据库连接   
  •      
  •   SID_LIST_LISTENER =   
  •      
  •   (SID_LIST =   
  •      
  •   (SID_DESC =   
  •      
  •   (GLOBAL_DBNAME = boway)   
  •      
  •   (ORACLE_HOME = E:/oracle/product/10.1.0/Db_2)   
  •      
  •   (SID_NAME = ORCL)   
  •      
  •   )   
  •      
  •   )   
  •      
  •   #监听器的名字,一台数据库可以有不止一个监听器   
  •      
  •   #再向下面是监听器监听的协议,ip,端口等,这里使用的tcp1521端口,并且使#用的是主机名   
  •      
  •   LISTENER =   
  •      
  •   (DESCRIPTION =   
  •      
  •   (ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))   
  •      
  •   )   

  •   
      上面的例子是一个最简单的例子,但也是最普遍的。一个listener进程为一个instance(SID)提供服务。






















        
     
     

    您可能感兴趣的文章:

  • Eclipse连接Oracle数据库的ORA-00604 ORA-12705错误
  • Oracle不能删除表 ORA-00604 ORA-01422 错误
  • oracle ORA-01114、ORA-27067错误解决方法
  • 如何配置 linux 下 oracle 的 listener .ora 和
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • [Oracle] 浅析令人抓狂的ORA-01555问题
  • 安装oracle出现error:ora-01031:insufficient privilleges的解决
  • plsql连接oracle数据库报ora 12154错误解决方法
  • 我在Linux7。3下面装了一个Oracle8i,但是现在启动不起来了,总是报错ORA-01031: insufficient privileges
  • 关于Oracle游标的问题(ORA-01000: maximum open cursors exceeded)
  • oracle 11g导出数据时报ORA 1455错误的处理方法
  • Oracle 数据库闪回功能设置出现ORA-19809和ORA-19804错误
  • ORA-28002 Oracle 11g存在密码过期问题解决方案
  • Linux 下数据库oracle出现ORA-27102错误的解决办法
  • oracle iis7站长之家
  • Oracle ORA-22908(NULL表值的参考)异常分析与解决方法
  • PHP连接Oracle错误ORA-24324服务句柄未初始化的解决方法
  • oracle报错(ORA-00600)问题处理
  • Oracle 10g之ORA-32004问题
  • oracle9i中的listener
  • Linux下如何启动oracle的Listener服务??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3