zoukankan      html  css  js  c++  java
  • ORA12560: TNS: 协议适配器错误的解决方法

    也可以通过  tnsping oracle_sid 来判断监听器是否配置 


    Case:

    Microsoft Windows [版本 5.2.3790]
    (C) 版权所有 1985-2003 Microsoft Corp.

    C:\Documents and Settings\user1>lsnrctl

    LSNRCTL for 32-bit Windows: Version 9.2.0.7.0 - Production on 27-8月 -2008 09:33
    :43

    Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.

    欢迎来到LSNRCTL,请键入"help"以获得信息。

    LSNRCTL> status
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
    TNS-12541: TNS:无监听器
    TNS-12560: TNS: 协议适配器错误
    TNS-00511: 无监听器
       32-bit Windows Error: 2: No such file or directory
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.55)(PORT=1521)))

    TNS-12538: TNS:没有此协议适配器
    TNS-12560: TNS: 协议适配器错误
    TNS-00508: 无此类协议适配器

    LSNRCTL> start
    启动tnslsnr:请稍候...

    TNSLSNR for 32-bit Windows: Version 9.2.0.7.0 - Production
    系统参数文件为D:\oracle\ora92\network\admin\listener.ora
    写入D:\oracle\ora92\network\log\listener.log的日志信息
    监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
    监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.55)(PORT=
    1521)))
    TNS-12538: TNS:没有此协议适配器
    TNS-12560: TNS: 协议适配器错误
    TNS-00508: 无此类协议适配器


    监听程序未能启动。请参阅上面的错误消息...


    ---------------------------
    服务
    ---------------------------
    在 本地计算机 无法启动 OracleOraHome92TNSListener 服务。

    错误 1067: 进程意外终止。

    ---------------------------
    确定   
    ---------------------------

    ==============================================================

    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.

    经过以上步骤,就可以解决问题。

    =======================================
    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.
    经过以上步骤,就可以解决问题

    1、ORA-12541:TNS:没有监听器
      原因:没有启动监听器或者监听器损坏。如果是前者,使用命令net start 
    OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8 Configuration

    Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。在添加之前可能需要把所有的监听器先删除!)
    2、ORA-12500:TNS:监听程序无法启动专用服务器进程或ORA-12560:TNS:协议适
    配器错误
      原因:ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORADB
    (ORADB为数据库名字)即可。如果仍没有解决,请继续向下看。

    3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:
      1)ORADIM -DELETE -SID oradb 删除数据库服务项
      2)ORADIM -NEW -SID oradb 新增数据库服务项
      注:这个过程中如果出错,就重启计算机!
    4、ORA-12154:TNS:能解析服务名
      原因:ORACLE的网络服务名没有正确配置。请使用“Net8 Configuration 
    Assistant”工具向导之“本地网络服务名配置”配置TNS即可。如果仍没有解决,请继续向下看。
    5、ORA-1034 :TNS:ORACLE不可用
      原因:ORACLE的数据库服务正确启动,但是数据库没有打开!
      使用命令:
      1)svrmgrl 启动服务管理器
      2)connect internal 以internal身份登陆
      3)startup 打开数据库
    6、ORA-12560:TNS:协议适配器错误(顽固性的)
      原因:未知。
      解决:必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进
    程,书写自己的

    ora_startup.bat,执行之!
    PS:
    1、我的ora_startup.bat:
    net start OracleOraHome81TNSListener
    net start ORACLESERVICEORADB
    svrmgrl 一般情况下不用,不过有时少不了它的,具体步骤见第5步。
    2、我的ora_shutdown.bat:
    net stop OracleOraHome81TNSListener
    net stop ORACLESERVICEORADB

      ORACLE_HOME=/u01/app/oracle/product/8.1.6 
      export ORACLE_HOME/ 包括Oracle软件的目录 / 
      LD_LIBRARY_PATH=/u01/app/oracle/product/8.1.6/lib; 
      export LD_LIBRARY_PATH 
      ORACLE_BASE=/u01/app/oracle 
      export ORACLE_BASE/ 包括Oracle软件的目录和管理软件的目录 / 
      ORACLE_SID=ORCL 
      export ORACLE_SID/ 缺省数据库的标识 / 
      ORACLE_TERM=vt100 
       export ORACLE_TERM 
      ORA_NLS33=/u01/app/oracle/product/8.1.6/ 
      ocommon/nls/admin/data 
      export ORA_NLS33 / 语言支持 / 
      PATH=$PATH: /u01/app/oracle/product/8.1.6/bin 
      export PATH


    =============================================
    ORA-12560 STARTING LISTENER ON NT - TROUBLESHOOTING
    ---------------------------------------------------

    ORA-12560: TNS Protocol adapter error
    Cause: A generic protocol adapter error occurred.
    Action:Check addresses used for proper protocol specification. Beforereporting this error, look at the error stack and check for lower leveltransport errors.For further details, turn on tracing and reexecute theoperation. Turn off tracing when the operation is complete.

    Thisis a high level error just reporting an error occurred in the actualtransport layer. Look at the next error down the stack and process that.


    1.- Starting Listener with TCP/IP Protocol 
        
        Problem:
        You start the TNS Listener from command line and the TCP/IP address fails with a TNS-12560.

        Solution:
       Check if Microsoft Winsock Proxy(WSP) Client is enabled on the WindowsNT Server, if that is the case then go to windows Control 
    Panel, click WSP icon and select the disable Proxy Client option.

        Explanation:
       The Winsock application may fail to bind to a specific port on a ProxyServer computer when the Winsock is running Proxy Client.

    2.- TNS-12560 TNS-512 Starting the listener.

        Problem:
        You try to start up the listener and receive the following error stack:
        TNS-12542: TNS:address already in use
         TNS-12560: TNS Protocol adapter error
          TNS-00512: Address already in use
           32-bit Windows Error: 48: Unknown error

        Error: TNS 512
        Text:   Address already in use
        --------------------------------------------
        Cause: Specified listener address is already being used.
        Action: Start your listener with an unused address.

        Generally this problem may ocurr for a incorrect setting in the listener.ora. Some causes of this problems may be:
        
       a.- Some defined address in the listeners.ora is been used. Make sureother listeners are not running. Either listener.log and screen 
    output appear the address with problem.
            
        b.- Just for 8i: in windows NT the algorithm to acquire 
            the address has change, please check the Note 69026.1: Oracle 8i and socket LISTEN operations.

       Explanation:
       The listener will try to acquire the address in exclusive mode, if this 
    is been used then the process to get it will fail. 
        
    3.- Starting the listener the errors ORA-12203,ORA-12560, NL-462 or NL-427 may be raised.

        Problem:
        You try to start up the listener and receive the following errors 
        ORA-12203,ORA-12560, NL-462 or NL-427.

        Solution:
        Recreate the listener.ora file.

        Explanation:
        Some corruption in the listener.ora may get unable to the tnslsnr to work adequatly.


    4.- Failed to start service, TNS-12560, TNS-00530 when create new listener services

        Problem: 
       To recreate Oracle TNS listener service on Windows NT, you delete theservice entry in registry. When using lsnrctl to start the listener,you get the following errors:

        LSNRCTL> start
        Starting tnslsnr: please wait...

        Failed to start service, error 3.

        TNS-00530: Protocol adapter error

        The Listener service is not recreated and the Listener would not start.
        You are using a valid listener.ora file and protocol adapters.


        Solution:
        After you delete the Listener service from registry, you have to reboot 
    NT for it to take effect. Then you can use lsnrctl to start the Listener, which would re-create the listener service.


        Explanation:
        The Listener service is marked 'disabled', but it still exists after 
    you delete the service from registry.

  • 相关阅读:
    python中True,False,数值之间用<,>,==进行比较规则
    分析python代码性能的程序分析包cProfile
    /bin/bash^M: bad interpreter: No such file or directory问题
    架构图以及vue的简介
    重写简易的confirm函数
    CSS绝对定位元素居中的几种方法
    Linux 部署java web 项目,验证码图片不显示文字问题
    log4j升级到log4j2
    openssh一键升级脚本(只升级openssh,其它已有环境不变,解决root登录问题)
    openssh一键升级脚本(测试成功)
  • 原文地址:https://www.cnblogs.com/dooom/p/1820828.html
Copyright © 2011-2022 走看看