75

在此处输入图像描述

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

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

4

19 回答 19

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

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

    tnsping < tnsalias > 
    

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

于 2011-08-01T21:06:10.357 回答
36

就我而言,如Bharathi 的回答中所述,我在 Windows 中没有OracleService(OracleServiceORCL) 。Services.msc

我执行了这个命令:

C:\> ORADIM -NEW -SID ORCL

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


来源:https ://forums.oracle.com/forums/message.jspa?messageID=4044655#4044655

于 2013-05-29T20:35:11.017 回答
27

好像数据库没有起来。这可能是由于重新启动机器并且实例未设置为自动启动,因此在从服务屏幕启动后没有相互启动。

只需转到命令提示符

  1. 设置 Oracle SID C:>set oracle_sid=ORCL

  2. 现在运行网络启动命令。 C:>net start oracleserviceORCL

于 2012-12-06T06:32:53.290 回答
11

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

TNS_ADMIN

C:\oracle\product\10.2.0\client_1\network\admin

于 2013-05-14T14:33:37.087 回答
11

从命令控制台,如果您收到此错误,您可以通过键入来避免它

c:\> sqlplus /nolog

然后你可以连接

SQL> conn user/pass @host:port/service
于 2016-02-26T17:27:39.353 回答
7

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

  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

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

这将启动OracleTNSListner.

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

就这么多,您就可以再次在 oracle 上工作了。

祝你好运。

于 2016-01-19T06:56:05.153 回答
6

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

sqlplus sys/mypassword as sysdba  

为了使它工作,我需要添加连接标识符(XE for Oracle Express),所以以下命令可以正常工作:

sqlplus sys/mypassword@XE as sysdba

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

tnsping XE

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

TNS_ADMIN=[oracle express installation dir]\app\oracle\product\11.2.0\server\network\ADMIN
于 2017-03-14T14:09:09.820 回答
3

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

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

于 2011-08-01T10:15:02.847 回答
3

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

于 2013-08-22T05:19:16.387 回答
3

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

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

于 2016-07-15T14:01:09.067 回答
1

如果上述方法都不起作用,请尝试以下操作:修改LISTENER.ora(我的位于:oracle\product\11.2.0\dbhome_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 文件。- 进行更改,然后它应该允许您保存

于 2013-09-22T16:20:09.727 回答
1

它确实在我的机器上工作。但是我找到了 OracleServiceXE 而不是 OracleServiceORCL。

于 2013-10-06T07:03:26.333 回答
1

流动流动的步骤:

  1. 编辑 $Oracle_home\product\11.2.0\client_1\NETWORK\ADMIN 位置中的 listener.ora 和 tnsnames.ora 文件

    一种。添加 listener.ora 文件

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

    )

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 username/passowrd@oracle_connection_alias

示例:
用户名:your_database_username
密码:Your_database_password
oracle_connection_alias:上述示例的SCHEMADEV。

于 2017-05-22T09:02:36.003 回答
1

只是为了加起来,如果没有选择,请按照屏幕截图并选择本地帐户启动。然后启动服务。

在此处输入图像描述

于 2020-07-31T06:12:04.527 回答
0

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

于 2011-08-01T05:46:17.427 回答
0

ORA-12560: TNS:erro de aptador 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 环境中。多变的。
于 2017-09-25T17:24:41.410 回答
0

我尝试 2 选项:

  1. 您在服务选项卡中更改服务 OracleService -> 运行
  2. 使用 cmd 命令登录:sqlplus user_name/pass_word@orcl12C 注意:orcle12c -> 在您的笔记本电脑上运行的 OracleService 名称
于 2020-10-19T06:58:28.677 回答
0

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

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

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

于 2021-05-24T17:41:23.633 回答
-1

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

一旦你得到了问题。最初,您必须检查连接详细信息,然后检查 oracle 服务等等。

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

于 2017-02-13T12:27:54.917 回答