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.

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

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

对原因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.

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

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

ORA-12560: TNS: 协议适配器错误的解决方法的更多相关文章

  1. Oracle用imp导入dmp 提示遇到 ORACLE 错误 12560 TNS: 协议适配器错误 解决方法

    用imp命令导入dmp文件时提示以下错误: IMP-00058: 遇到 ORACLE 错误 12560 : ORA-12560: TNS: 协议适配器错误 : IMP-00000: 未成功终止导入 : ...

  2. 数据库、ArcCatalog空间数据源正常访问,数据库设置没问题时,ArcEngine连接SDE时报"ORA-12560: TNS: 协议适配器错误"的解决办法;ArcEngine连接SDE总结

    碰到的问题描述: 通过C# 基于ArcEngine写SDE直连的时候测试项目连接属性设置为如下: tPropSet.SetProperty("User", "GISDAT ...

  3. ORA-12560:TNS:协议器错误的解决方法

    使用SQL Plus登录数据库时,系统报ORA-12560:TNS:协议器错误.之前建了三个数据库实例,删除了一个实例.现在登录其中一个数据库报此错误.   工具/原料   Oracle11g 方法/ ...

  4. ERROR: ORA-12560: TNS: 协议适配器错误,解决办法:启动OracleServiceORCL服务

  5. TNS-12560: TNS: 协议适配器错误

    TNS-12560: TNS: 协议适配器错误   Microsoft Windows [版本 5.2.3790] (C) 版权所有 1985-2003 Microsoft Corp. C:\Docu ...

  6. 安装完ODAC,出现ORA-12560:TNS:协议适配器错误 12541 无监听程序的解决

    进入系统环境变量设置,查看Path路径,发现D:\oracle\product\11.2.0\client_1等路径放到了oracle11g数据库路径前面,将新加入的路径置后即可解决ORA-12560 ...

  7. 排错-windows下 ORA-12560 TNS 协议适配器错误解决方法

    排错-windows下_ORA-12560 TNS 协议适配器错误解决方法 by:授客 QQ:1033553122 问题描述: 修改SQL*Plus窗口属性后,重新打开SQL*Plus时出现ORA-1 ...

  8. 错误”ORA-12560: TNS: 协议适配器错误“解决方法

    错误”ORA-12560: TNS: 协议适配器错误“解决方法 原本是可以通过sqlplus连接数据库的,命令如下: C:\Users\xuwei>sqlplus /nolog SQL*Plus ...

  9. TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序

    文章转自:http://www.luocs.com/archives/464.html 此文版权归作者 – yaogang所有,转载请注明yaogang©www.luocs.com. Luocs说:这 ...

随机推荐

  1. bzoj 1264 [AHOI2006]基因匹配Match dp + 树状数组

    思路:好难想啊, 考虑到应该从每个数字只有5个数字下手, 但是不知道到底该怎么写.. 首先我们将第一个串按数字的种类分类, 每一类里面有5个, 然后将第二个串里面的数字一个一个加,如果一个加入的第 i ...

  2. linux查找文件或目录命令

    inux查找文件或目录命令,前提:知道文件或者目录的具体名字,例如:sphinx.conf find 查找  find / -name dirname  查找目录 find -name filenam ...

  3. CodeForces - 831A Unimodal Array 模拟

    A. Unimodal Array time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  4. MySQL Insert语句单个批次数量过多导致的CPU性能问题分析

    [问题] 最近有台服务器比较频繁的CPU报警,表现的特征有CPU sys占比偏高,大量慢查询,大量并发线程堆积.后面开发对insert的相关业务限流后,服务器性能恢复正常. [异常期间线程处理情况] ...

  5. 试水jdk8 stream

    jdk8出来日子不短了,jdk11都出来了,不过用的最多的不过是1.5罢了. 今年终于鼓起勇气认真对待它,在18年记录下学习stream,画上一个圆. 先看个图 Java8中有两大最为重要的改变.第一 ...

  6. 历史文章分类汇总-Anaconda安装第三方包(whl文件)

    本文主要是对公众号之前发布的文章进行分类整理,方面大家查阅,以后会不定期对文章汇总进行更新与发布.   一.推荐阅读: Anaconda安装第三方包(whl文件) 福布斯系列之数据分析思路篇 福布斯系 ...

  7. web服务端安全之分布式拒绝服务攻击

    一.DDOS攻击的原理分布式拒绝服务,Distributed Denial of Service,利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务.通过大量合法的请 ...

  8. 用Python开始机器学习(3:数据拟合与广义线性回归)

    机器学习中的预测问题通常分为2类:回归与分类. 简单的说回归就是预测数值,而分类是给数据打上标签归类. 本文讲述如何用Python进行基本的数据拟合,以及如何对拟合结果的误差进行分析. 本例中使用一个 ...

  9. 【SPFA】POJ1860-Currency Exchange

    [题目大意] 给出每两种货币之间交换的手续费和汇率,求出从当前货币s开始交换,能否赚. [思路] 反向运用SPFA,判断是否有正环.每次队首元素出队之后,判断一下到源点s的距离是否增大,增大则返回tr ...

  10. 【扩展欧几里得】codevs1200-同余方程

    [题目大意] 求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解. [思路] 求解ax+by=1,只要x<0就不断加上 b. #include<iostream> #i ...