ORA-12560:TNS:协议适配器错误

时间:2011-08-01 05:39:37

标签: sql oracle oracle9i ora-12560

enter image description here

我谷歌[d]出现此错误 ORA-12560:TNS:协议适配器错误但无法找到实际原因以及如何解决此错误?

任何人都可以告诉我解决登录问题的完美解决方案。

20 个答案:

答案 0 :(得分:77)

  1. 转到托管Oracle数据库服务器的Windows计算机
  2. 转到开始 - >运行 - > Windows中的Services.msc。 找到 OracleService< SID> (此处为OracleServiceORCL)并单击Start以启动oracle数据库服务(如果尚未运行) Services

  3. 启动并运行后,从命令提示符运行以下命令:

    tnsping < tnsalias > 
    

    tnsalias 条目,您可以在tnsnames.ora文件中找到它)

答案 1 :(得分:23)

就我而言,OracleService中描述的Windows Services.msc中没有C:\> ORADIM -NEW -SID ORCL (OracleServiceORCL)。

我执行了这个命令:

OracleService

然后调用OracleServiceORCL的{{1}}刚出现并在Services.msc中启动。非常好。


来源:Bharathi's answer

答案 2 :(得分:22)

似乎数据库不起来。这可能是由于重新启动机器而实例未设置为自动启动,因此在从服务屏幕启动后不会以实时方式启动。

只需转到命令提示符

  1. 设置Oracle SID C:&gt;设置oracle_sid = ORCL

  2. 现在运行 Net start 命令。 C:&gt; net start oracleserviceORCL

答案 3 :(得分:9)

在环境中添加以下变量和值以标识tnsnames.ora文件的位置:

TNS_ADMIN

C:\ ORACLE \产品\ 10.2.0 \的Client_1 \网络\管理员

答案 4 :(得分:5)

从命令控制台

,如果出现此错误,可以通过键入来避免此错误 sqlplus / nolog

然后你可以连接 conn user / pass @host:port / service

答案 5 :(得分:3)

这通常意味着听众还没有开始。检查“服务”面板。

在Windows上(因为您),另一个常见原因是注册表中未定义ORACLE_SID。编辑注册表或在CMD框中设置ORACLE_SID。 (因为你想运行sqlplusw.exe我建议你编辑注册表。)

答案 6 :(得分:2)

我已经轻松解决了这个问题。我的oracle过去运行得很好。我安装MS SQL Server之后就注意到了这个问题。我刚刚在我的机器上卸载了MS SQL Server,然后问题就消失了。确保在此之后重新启动计算机。现在我可以再次通过SQLPlus连接到Oracle数据库。我的猜测是两者之间存在一些冲突。希望这会有所帮助。

答案 7 :(得分:2)

经过搜索后得到了一个简单的方法来解决它。 只需按照步骤操作即可。

  1. 检查听众的状态。
    1. 打开命令提示符并键入lsnrctl status
    2. 你将没有听众。
  2. 现在打开以下目录中的listener.ora文件:C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN

    1. 打开该文件并使用您的计算机名称更改主机参数
    2. 右键单击My Computer可以获取计算机名称并检查计算机名称,并将主机参数替换为您的计算机名称,如下所示:

      LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = Electron-PC)(PORT = 1521) ) ) )

      所以在这里你可以观察HOST = Electron-PC,这是我的电脑名称。

    3. 保存listener.ora文件并再次返回cammand propt

    4. 3.在命令提示符lsnrctl start

      中键入以下内容

      这将启动OracleTNSListner

      您可以通过打开任务管理器的服务选项卡在服务中进行检查。如果没有自动启动,你可以启动它。

      就是这么多,你准备再次在oracle上工作了。

      最好的运气。

答案 8 :(得分:2)

另一个可能对我有用的解决方案......考虑到我使用本地登录作为dba权限。

按照步骤进入服务。右键单击实例并转到“登录”? (可能不是名称,但它是包含权限的选项卡之一)。更改设置以使用LOCAL。

答案 9 :(得分:1)

如果上述工作都没有,那么试试这个: 修改LISTENER.ora(我的位于:oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora)==&gt;添加一个指向您的数据库(SID)的自定义侦听器,例如我的SID是XZ0301,所以:

## Base XZ03001

SID_LIST_LISTENER_XZ03001=(SID_LIST=(SID_DESC=(ORACLE_HOME =
E:\oracle\product\11.2.0\dbhome_1)(SID_NAME= XZ03001)))

LISTENER_XZ03001=(DESCRIPTION_LIST=(ADDRESS=(PROTOCOL =
TCP)(HOST=MyComputerName)(PORT= 1521)))

DIAG_ADR_ENABLED_LISTENER_XZ03001=ON

ADR_BASE_LISTENER_XZ03001=E:\oracle

重启您的机器

对于Windows 7,请使用以下命令修改LISTENER.ora:   - 转到开始&gt;所有程序&gt;饰品   - 右键单击​​记事本,然后单击以管理员身份运行。   - 文件&gt;打开并导航到tnsnames.ora文件。   - 进行更改然后它应该允许您保存

答案 10 :(得分:1)

在我的情况下(对于OracleExpress)服务正在运行,但是在尝试通过没有连接标识符的sqlplus访问数据库时遇到了这个问题:

sqlplus sys/mypassword as sysdba  

为了使其工作,我需要添加连接标识符(适用于Oracle Express的XE),因此以下命令可以正常工作:

sqlplus sys/mypassword@XE as sysdba

如果您仍然获得ORA-12560,请确保您可以ping XE服务。使用:

tnsping XE

你应该得到OK消息以及完整的连接字符串(tnsping命令位于oracle的安装目录:[oracle express installation dir] \ app \ oracle \ product \ 11.2.0 \ server \ bin)。如果您无法ping通,请确保sqlplus可以访问tnsnames.ora文件。您可能需要将TNS_ADMIN环境变量设置为指向文件所在的ADMIN目录,例如:

TNS_ADMIN=[oracle express installation dir]\app\oracle\product\11.2.0\server\network\ADMIN

答案 11 :(得分:1)

流动流动的步骤:

  1. 编辑您的listener.ora和tnsnames.ora文件 $ Oracle_home \ product \ 11.2.0 \ client_1 \ NETWORK \ ADMIN location

    一个。添加listener.ora文件

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    

  2. ADR_BASE_LISTENER = C:[这里c是oralce主目录]

    湾添加tnsnames.ora文件

        SCHEMADEV =
                (DESCRIPTION =
                         (ADDRESS_LIST =
                         (ADDRESS = (PROTOCOL = TCP)(HOST = dabase_ip)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = SCHEMADEV)
        )
      )
    
    1. 打开命令提示符并键入
      sqlplus用户名/ passowrd @ oracle_connection_alias
    2. 示例:
      用户名:your_database_username
                密码:Your_database_password
                oracle_connection_alias:上面例子的SCHEMADEV。

答案 12 :(得分:0)

它确实在我的机器上运行。但是我找到了OracleServiceXE而不是OracleServiceOR。

答案 13 :(得分:0)

您需要告诉SQLPlus您要登录的数据库。 Host String必须是连接字符串或TNSNames.ora文件中配置的别名。

答案 14 :(得分:0)

在我的情况下,( ORA-12560:TNS协议适配器错误)问题数据库连接问题的原因,如数据库,用户名和密码。

一旦你遇到了这个问题。在检查oracle服务之后,您最初必须检查连接详细信息

我错过了一些连接细节,所以只有 TNS协议适配器错误 我会更改连接详情,它会正常工作

答案 15 :(得分:0)

ORA-12560:TNS:erro de adaptador de protocolo

  1. 设置环境变量:ORACLE_BASE,ORACLE_HOME,ORACLE_SID
  2. 确保您的用户属于ORACLE_GROUP_NAME(Windows)
  3. 确保文件ORACLE_HOME / network / admin / sqlnet.ora是: SQLNET.AUTHENTICATION_SERVICES =(NTS)
  4. (Windows)添加新的Oracle客户端时要小心:向PATH环境添加新路径。变量可以搞砸了。此变量中的第一个条目有所不同:证明ORACLE_HOME(ORACLE_HOME / bin)中的sqlplus可执行文件首先出现在PATH环境中。变量

答案 16 :(得分:0)

我遇到“ ORA-12560:TNS:协议适配器错误”的问题,我用了2个小时的时间在Google上搜索,因为它没有关注细节。我打开命令提示符,然后有了这个命令:

C:\Users\Frodo>set oracle_sid=<DB name>

...虽然应该撒谎:

C:\>set oracle_sid=<DB name>

C:> 应该代替 C:\ Users \ Frodo> -这是我的问题;这样就可以了:

C:\Users\Frodo> cd c:
C:\>set oracle_sid=<DB name>
C:\>exp ........

答案 17 :(得分:0)

要添加,请遵循屏幕截图,如果未选择,请选择本地帐户以启动。然后启动服务。

enter image description here

答案 18 :(得分:0)

我尝试2种选择:

  1. 您在服务选项卡->运行中更改服务OracleService
  2. 使用cmd命令登录:sqlplus user_name / pass_word @ orcl12C 注意:orcle12c-> OracleService名称在笔记本电脑中运行的名称

答案 19 :(得分:0)

可以应用以下修复来解决 TNS 12560 错误

  1. 获取 SQL*NET 客户端软件的最新补丁
  2. 设置 $ORACLE_HOME$PATH 变量(系统用户应该可以访问)
  3. 检查 PC 客户端的权限
  4. 检查 $TNS_ADMIN 变量
  5. 检查网络是否存在防火墙或防病毒问题
  6. 检查windows服务是否运行>>Services.msc有运行OracleXE或OracleORCL服务 如果出现网络跟踪错误,请检查以下链接:

http://dba-oracle.com/t_sql_net_tracing.htm