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

    ORA-12560: TNS: 协议适配器错误的解决方法

    造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:


    1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。

    2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.

    3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINESOFTWAREORACLEHOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建
    ,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.

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

    ------------------------------------------------------------------------------------------------------

    对原因2的分析:

    window平台下9i和8i 好像不一样 。

    9i 必须启动服务中的OracleServiceSID,如果没有启动的话,在命令行执行conn / as sysdba,会报:ORA-12560: TNS: 协议适配器错误。

    而8i 既可以在服务中启动数据库,也可以在命令行启动

    ------------------------------------------------------------------------------------------------------

    对原因1的不同平台操作方式的横向对比:

    在LINUX 下 进程就不一样了
    WINDOWS 下 启动oraclehome92TNSlistener服务。
    LINUX 下 启动 /opt/oracle/product/9.2.0/bin/tnslsnr &

    ------------------------------------------------------------------------------------------------------

    其它原因:

    问题出现的原因是在同一个server上安装第二个数据库,结果安装失败,应该是把第一个的SID的变量给冲了,按照上述第三个方法,解决问题。

    因为装了第2个INSTANCE后,第一个INSTANCE的SID被冲掉,使用第3个办法, 问题马上解决,,我记的有个SET 命令可以把SID改回来,但想不起来了。
    (PS:上面说的SET命令,是否是原因3中提到的“或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.”)

    ------------------------------------------------------------------------------------------------------

    问题样例展示: 

    Case:

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

    C:Documents and Settingsuser1>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:oracleora92networkadminlistener.ora
    写入D:oracleora92networkloglistener.log的日志信息
    监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=.pipeEXTPROC1ipc)))
    监听该对象时出错: (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_MACHINESOFTWAREORACLEHOME0将该环境变量ORACLE_SID设置为XXXX, XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX, XXXX就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX, XXXX就是你的database SID.

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

    ------------------------------------------------------------------------------------------------------

  • 相关阅读:
    form表单 获取与赋值
    转:探讨JS合并两个数组的方法
    Extjs动态增删组件
    Extjs中创建Tree菜单【一】
    Extjs中grid前端分页使用PagingMemoryProxy【二】
    python模拟线性回归的点
    TensorFlow 辨异 —— tf.add(a, b) 与 a+b(tf.assign 与 =)、tf.nn.bias_add 与 tf.add(转)
    python使用cv2显示图片像素值
    tensorflow中run和eval的区别(转)
    获取tensorflow中tensor的值
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/4322100.html
Copyright © 2011-2022 走看看