请问为什么数据库运行一段时间以后 就会出现ORA-12560:TNS:协议适配器错误至于重新启动数据库或者重启系统数据库才会正常请问大家这样该怎么解决

解决方案 »

  1.   

    lsnrctl status yourinstance_name看看当前listener的情况
      

  2.   

    谢谢楼上的现在数据库运行正常我把执行 lsnrctl status 命令的内容拷下来了等到数据库出错时 再来对比C:\Documents and Settings\Administrator>lsnrctl status oracleLSNRCTL for 32-bit Windows: Version 9.0.1.1.1 - Production on 09-1月 -2007 16:52
    :46Copyright (c) 1991, 2001, Oracle Corporation.  All rights reserved.正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONN
    ECT_DATA=(SERVICE_NAME=ORACLE)))
    LISTENER 的 STATUS
    ------------------------
    别名                      LISTENER
    版本                      TNSLSNR for 32-bit Windows: Version 9.0.1.1.1 - Produc
    tion
    启动日期                  09-1月 -2007 15:02:14
    正常运行时间              0 天 1 小时 50 分 36 秒
    跟踪级别                  user
    安全性                    OFF
    SNMP                      OFF
    监听器参数文件          D:\oracle\ora90\network\admin\listener.ora
    监听器日志文件          D:\oracle\ora90\network\log\listener.log
    监听器跟踪文件          D:\oracle\ora90\network\trace\listener.trc
    监听端点概要...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sky)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=220.173.136.168)(PORT=8080))(PRESENT
    ATION=http://admin)(SESSION=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=220.173.136.168)(PORT=9090))(PRESEN
    TATION=http://admin)(SESSION=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=220.173.136.168)(PORT=2481))(PRESENT
    ATION=GIOP)(SESSION=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=220.173.136.168)(PORT=2482))(PRESEN
    TATION=GIOP)(SESSION=RAW))
    服务摘要..
    服务 "MODOSE" 包含 1 个例程。
      例程 "ORACLE", 状态 READY, 包含此服务的 1 个处理程序...
    服务 "ORACLE" 包含 2 个例程。
      例程 "ORACLE", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
      例程 "ORACLE", 状态 READY, 包含此服务的 3 个处理程序...
    服务 "PLSExtProc" 包含 1 个例程。
      例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
      

  3.   

    今天早上又出现问题了
    不但是oracle连接不上
    网络也连不通了
    请大家帮忙看看什么问题
    要怎么样才能解决
    谢谢了C:\Documents and Settings\Administrator>lsnrctl status oracleLSNRCTL for 32-bit Windows: Version 9.0.1.1.1 - Production on 10-1月 -2007 08:31
    :49Copyright (c) 1991, 2001, Oracle Corporation.  All rights reserved.正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONN
    ECT_DATA=(SERVICE_NAME=ORACLE)))
    TNS-12560: TNS: 协议适配器错误
     TNS-00530: 协议适配器错误
      32-bit Windows Error: 55: Unknown error
      

  4.   

    看一下下面的方法能行不?原因:ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORADB(ORADB为数据库名字)即可。ORA-12560:TNS:协议适配器错误(顽固性的)
    原因:未知。
    解决:必杀技——打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写自己的ora_startup.bat,执行之!
    PS:
    1、我的ora_startup.bat:
    net start OracleOraHome92TNSListener
    net start ORACLESERVICEORADB
    svrmgrl一般情况下不用,不过有时少不了它的,具体步骤见第5步。
    2、我的ora_shutdown.bat:
    net stop OracleOraHome92TNSListener
    net stop ORACLESERVICEORADB
    3、ORACLE相关服务名请参见“管理工具”之“服务”中以ORACLE开头的服务名。
    1、检查Terminal Service,看远程桌面是不是起因;
    2、检查环境变量ORACLE_SID是否正确,包括注册表中的设定(检查注册表HKEY_LOCAL_MACHINE\Software\Oracle\key_oracle没有oracle_sid=whora这项值,把这项值增加进去重新连,问题就解決了)
    3、检查Oracle服务是否启动
    4、检查LISTENER.ORA,TNSNAME.ORA等的机器名(IP地址)或者服务名是否正确
    5、Netstat –a检查端口是否被占用
    6、检查注册表HKEY_LOCAL_MACHINE\Software\Oracle\Home0新增字符串USE_SHARED_SOCKET=TRUE,重新启动服务对于运行在Windows下的Oracle 8i还可能是如下情况:
    1、在Server本机执行Svrmgrl或Sqlplus时报该错误,此时需检查ORACLE_SID设置是否正确,包括注册表中的设定,并检查Service是否运行
    2、如果SID设置正确且服务也已经运行,如果这时还报该错误,则应该检查SID NAME是否包含了非字母字符,对于Windows下的Oracle 8i,SID NAME不允许包含非字母字符,比如下划线或横线
    3、如果出现顽固性的ORA-12560错误,可考虑自己写ORACLE启动及关闭脚本,因为Windows的oracle service自动启动不是很完善
    其他情况要具体分析,比如有可能是连接数过多造成内存消耗殆尽,也会造成ORA-12560错误。
    是在sqlplusw中的协议适配器错误的话就是你的那个配置文件错误……你重新去找一个新安装好的去把那段东西copy进去,然后重新配置监听和本地网络就可以了。
    可能的命令:tnsping 127.0.0.1;svrmgrl
    解决了, 将Terminal Service 停止就可以了
    造成ORA-12560:TNS:协议适配器错误的问题的原因有三个:
    1、监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。
    2、database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID。
    3、注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID;或者右击我的电脑,属性--高级--环境变量--系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID;或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID。
    经过以上步骤,就可以解决问题。
      

  5.   

    程序运行中,遭遇ORA-12560: TNS: 协议适配器错误的问题,经过一番努力问题已经解决,与大家共享。
    造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
    1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。
    2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.
    3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.
    经过以上步骤,就可以解决问题。
      

  6.   

    我觉得只要你正确安装了,以上问题都不需要你自己动手去做的,如果你的系统没有什么问题造成oracle的服务不能正常启动的话。