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

Sql ORA-12560:TNS:协议适配器错误,sql,oracle,oracle9i,ora-12560,Sql,Oracle,Oracle9i,Ora 12560,我搜索[d]查找此错误ORA-12560:TNS:protocol Adapter错误,但无法找到实际原因以及如何解决此错误 谁能告诉我一个解决登录问题的完美解决方案。您需要告诉SQLPlus您要登录到哪个数据库。主机字符串需要是TNSNames.ora文件中配置的连接字符串或别名。这通常意味着侦听器尚未启动。检查服务面板 在Windows上(和您一样),另一个常见原因是未在注册表中定义ORACLE_SID。编辑注册表或在CMD框中设置ORACLE_SID。(因为您想运行sqlplusw.exe

我搜索[d]查找此错误ORA-12560:TNS:protocol Adapter错误,但无法找到实际原因以及如何解决此错误


谁能告诉我一个解决登录问题的完美解决方案。

您需要告诉SQLPlus您要登录到哪个数据库。主机字符串需要是TNSNames.ora文件中配置的连接字符串或别名。

这通常意味着侦听器尚未启动。检查服务面板

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

  • 转到托管Oracle数据库服务器的windows计算机
  • 在Windows中转到开始->运行->服务.msc。 找到OracleService(此处
    OracleServiceORCL
    ),然后单击
    Start
    启动oracle数据库服务(如果尚未运行)

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

    tnsping < tnsalias > 
    
    tnsping
    
    (tnsalias条目您可以在
    tnsnames.ora
    文件中找到它)


  • 好像数据库还没打开。这可能是由于重新启动计算机,而实例未设置为autostart,因此从“服务”屏幕启动后未正常启动

    只需转到命令提示符

  • 设置Oracle SID C:>设置oracle_sid=ORCL

  • 现在运行Net start命令。 C:>net start oracleserviceORCL


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

    TNS_管理员


    C:\oracle\product\10.2.0\client\u 1\network\admin

    在我的例子中,我没有Windows
    服务.msc中所述的
    OracleService
    (OracleServiceORCL)

    我执行了这个命令:

    C:\> ORADIM -NEW -SID ORCL
    
    然后名为OracleServiceORCL的
    OracleService
    出现在Services.msc中并开始运行。非常好



    来源:

    我用简单的方法解决了这个问题。我的甲骨文在过去运行得很好。安装MS SQL Server之后,我注意到了这个问题。我刚在我的机器上卸载了MS SQL Server,然后问题就解决了。确保在此之后重新启动计算机。现在我可以再次通过SQLPlus连接到Oracle数据库。我猜这两者之间有冲突。希望这有帮助。

    如果上述方法都无效,请尝试以下方法: 修改
    LISTENER.ora
    (我的位于:
    oracle\product\11.2.0\dbhome\u 1\NETWORK\ADMIN\LISTENER.ora
    )==>添加指向数据库(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: -进入开始>所有程序>附件 -右键单击记事本,然后单击以管理员身份运行。 -文件>打开并导航到tnsnames.ora文件。
    -进行更改后,它将允许您保存

    它在我的机器上确实起了作用。但是我没有找到OracleServiceORCL,而是找到了OracleServiceXE。

    在搜索了很多之后,我找到了一个简单的方法来解决它。 只需按照步骤操作即可

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

  • 打开该文件并用您的计算机名更改主机参数
  • 您可以通过右键单击
    My computer
    获取您的计算机名,并检查您的计算机名,然后用您的计算机名替换主机参数,如下所示:

    监听器=
    (说明和清单=
    (说明=
    (地址=(协议=IPC)(键=EXTPROC1))
    (地址=(协议=TCP)(主机=电子计算机)(端口=1521)
    )
    )
    )

    所以在这里你可以看到我的电脑名

  • 保存listener.ora文件,然后再次返回cammand propt

  • 3.在命令提示符下键入以下内容
    lsnrctl start

    这将启动
    OracleTNSListner

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

    仅此而已,您已经准备好再次使用oracle


    祝您好运。

    从命令控制台,如果您遇到此错误,可以通过键入

    c:\> sqlplus /nolog
    
    然后你就可以连接了

    SQL> conn user/pass @host:port/service
    

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

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

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

    一旦你得到了问题。首先,您必须检查连接详细信息,然后再检查oracle服务和其他更多信息

    我错过了一些连接详细信息,因此只有我得到了TNS协议适配器错误我将更改连接详细信息,它将正常工作

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

    sqlplus sys/mypassword as sysdba  
    
    为了使其正常工作,我需要添加连接标识符(XE用于Oracle Express),因此以下命令正常工作:

    sqlplus sys/mypassword@XE as sysdba
    
    如果您仍然获得ORA-12560,请确保您可以ping XE服务。使用:

    tnsping XE
    
    您应该会得到OK消息以及完整的连接字符串
    TNS_ADMIN=[oracle express installation dir]\app\oracle\product\11.2.0\server\network\ADMIN
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    
        SCHEMADEV =
                (DESCRIPTION =
                         (ADDRESS_LIST =
                         (ADDRESS = (PROTOCOL = TCP)(HOST = dabase_ip)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = SCHEMADEV)
        )
      )
    
    C:\Users\Frodo>set oracle_sid=<DB name>
    
    C:\>set oracle_sid=<DB name>
    
    C:\Users\Frodo> cd c:
    C:\>set oracle_sid=<DB name>
    C:\>exp ........