敬业的IT人 >> 考试认证 >> Oracle认证 >> 分析oracle 登录失败的原因

分析oracle 登录失败的原因

敬业的IT人 互联网 佚名 2008-1-9 10:05:14

   

    初始化首次测试请使用用户名: scott, 口令: tiger
    正在尝试使用以下用户 ID 连接:scott
    测试没有成功。
ORA-12541: TNS:no listener 

登录到数据库:orcl

您的用户名和/或口令无效。

    解决方法:

1。看看注册表中的HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OracleOraHome92TNSListener键值是否正确(对应TNSLSNR.exe)

2。手工启动呢?  
   
      c:\lsnrctl   start  
   
  然后在看状态  
      lsnrctl>status

3。从Oracle的错误提示来看,是说TNS:no listener ,估计是某种服务没有启动,打开windows管理工具->服务,一看,有一个OracleOraHome90TNSListener这样的服务,和错误信息题是一致,基本就可以肯定是这个服务所引发的问题。再一看,该服务没有启动,遂手工启动,刷新后一看,该服务居然马上就自动关闭了。重试N次,结果一样。到Google搜索看看,没想到这还是一个普遍的问题,有一个人提出,把安装目录下的listener.ora打开察看。如:d:\oracle\ora90\network\admin\listener.ora。
打开该配置文件后发现如下一段配置信息:
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = local)(PORT = 1521))
      )
    )
  )
 
当看到这一行HOST=local 的时候,问题解决了。原来是由于几天装好Oracle后,又改了Windows的计算机名,而这个配置文件中记录的监听主机名还是原来的名称,这也就怪不得,OracleOraHome90TNSListener服务无法启动了,马上修改为现在的计算机名,再次启动OracleOraHome90TNSListener服务成功,PL/SQL Developer连接Oracle数据库成功,不能登陆故障排除。

总结:Oracle比较强调手动功能调整,将一些配置信息放置在配置文件中。不像SqlServer一样,几乎把任何信息都放在注册表中,当然了这也符合Oracle作为一个跨平台数据库的精神。但对初学者来说,确有一定难度,不像SqlServer那么“傻瓜”,再解决这个问题时,差点又重装一次Oracle,看来遇到问题多Google多分析,还是屡试不爽的。

4.tnsnames.ora中的内容。

#   TNSNAMES.ORA   Network   Configuration   File:   E:\oracle\ora92\network\admin\tnsnames.ora  
  #   Generated   by   Oracle   configuration   tools.  
   
  INST1_HTTP.SOFT-DEPT.COM   =  
      (DESCRIPTION   =  
          (ADDRESS_LIST   =  
              (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   tt)(PORT   =   1521))  
          )  
          (CONNECT_DATA   =  
              (SERVER   =   SHARED)  
              (SERVICE_NAME   =   MODOSE)  
              (PRESENTATION   =   http://HRService)  
          )  
      )  
   
  MYGOD.SOFT-DEPT.COM   =  
      (DESCRIPTION   =  
          (ADDRESS_LIST   =  
              (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   tt)(PORT   =   1521))  
          )  
          (CONNECT_DATA   =  
              (SERVICE_NAME   =   mygod)  
          )  
      )  
   
  myDB.SOFT-DEPT.COM   =  
      (DESCRIPTION   =  
          (ADDRESS_LIST   =  
              (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   tt)(PORT   =   1521))  
          )  
          (CONNECT_DATA   =  
              (SERVER   =   DEDICATED)  
              (SERVICE_NAME   =   myDB)  
          )  
      )  
   
  EXTPROC_CONNECTION_DATA.SOFT-DEPT.COM   =  
      (DESCRIPTION   =  
          (ADDRESS_LIST   =  
              (ADDRESS   =   (PROTOCOL   =   IPC)(KEY   =   EXTPROC0))  
          )  
          (CONNECT_DATA   =  
              (SID   =   PLSExtProc)  
              (PRESENTATION   =   RO)  
          )  
      )  
   
  myDB是安装时默认创建的,mygod时候来创建的,前者可以连接,后者不行。  

MYGOD.SOFT-DEPT.COM   =  
      (DESCRIPTION   =  
          (ADDRESS_LIST   =  
              (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   tt)(PORT   =   1521))  
          )  
          (CONNECT_DATA   =  
              (SERVICE_NAME   =   mydb)  
          )  
      )





  相关产品与培训
 相关文章 推荐文章VB连接ORACLE数据库
Oracle数据库中高级复制的功能介绍
Oracle传统基本体系结构初步介绍
利用Oracle自带的连接缓冲类的一个例子
oracle建表过程的一些脚本步骤
ORACLE的索引和约束详解
Oracle数据库中基本动态Web开发和应用
Oracle分层管理器的技术原理及应用
清除Oracle中无用索引 改善DML性能
Oracle 10g RAC之网络设置
· SQL Server与Oracle并行访问本质区别
· Oracle 10g RAC之网络设置
· Oracle企业管理器10g第三版上市
· 两种Oracle应用程序开发接口的对比分析
· Oracle中空间管理对系统性能的影响
· 怎样将Oracle中大量数据快速转移数据
· ORACLE 11g新特性中文版
· Oracle数据库较好的重新启动步骤
· Oracle10g数据库优化实用心得小结
· Oracle10g数据库的4种存储形式

粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com