我谷歌 [d] 出现此错误ORA-12560: TNS:protocol adapter error但无法找到实际原因以及如何解决此错误?
谁能告诉我解决登录问题的完美解决方案。
在 Windows 中转到开始 -> 运行 -> Services.msc。找到OracleService < SID >(此处OracleServiceORCL
)并单击Start
以启动 oracle 数据库服务(如果尚未运行)
启动并运行后,从命令提示符运行以下命令:
tnsping < tnsalias >
(tnsalias条目,您可以在tnsnames.ora
文件中找到它)
就我而言,如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
好像数据库没有起来。这可能是由于重新启动机器并且实例未设置为自动启动,因此在从服务屏幕启动后没有相互启动。
只需转到命令提示符
设置 Oracle SID C:>set oracle_sid=ORCL
现在运行网络启动命令。 C:>net start oracleserviceORCL
将以下变量和值添加到环境变量中以标识 tnsnames.ora 文件的位置:
TNS_ADMIN
C:\oracle\product\10.2.0\client_1\network\admin
从命令控制台,如果您收到此错误,您可以通过键入来避免它
c:\> sqlplus /nolog
然后你可以连接
SQL> conn user/pass @host:port/service
经过大量搜索,得到了一个简单的方法来解决它。只需按照步骤操作即可。
lsnrctl status
现在打开listener.ora
以下目录中的文件:C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN
您可以通过右键单击My Computer
并检查您的计算机名称来获取您的计算机名称,并将主机参数替换为您的计算机名称,如下所示:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = Electron-PC)(PORT = 1521)
)
)
)
所以在这里你可以观察到HOST = Electron-PC
,这是我的计算机名。
保存 listener.ora 文件并再次返回 cammand propt
3.在命令提示符下输入以下内容lsnrctl start
这将启动OracleTNSListner
.
您可以通过打开任务管理器的服务选项卡在服务中检查它。如果没有自动启动,您可以启动它。
就这么多,您就可以再次在 oracle 上工作了。
祝你好运。
在我的情况下(对于 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
这通常意味着侦听器尚未启动。检查服务面板。
在 Windows(如您)上,另一个常见原因是 ORACLE_SID 未在注册表中定义。编辑注册表或在 CMD 框中设置 ORACLE_SID。(因为要运行 sqlplusw.exe 建议你编辑注册表。)
我用简单的方法解决了这个问题。我的预言机过去运行得很好。在我安装 MS SQL Server 之后,我注意到了这个问题。我刚刚在我的机器上卸载了 MS SQL Server,然后问题就消失了。确保在此之后重新启动计算机。现在我可以再次通过 SQLPlus 连接到 Oracle 数据库。我的猜测是两者之间存在一些冲突。希望这可以帮助。
另一个对我有用的可能解决方案...考虑到我使用本地登录作为 dba 权限。
按照步骤访问服务。右键单击实例并转到“登录”?(可能不是名称,但它是包含权限的选项卡之一)。更改设置以使用 LOCAL。
如果上述方法都不起作用,请尝试以下操作:修改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 文件。- 进行更改,然后它应该允许您保存
它确实在我的机器上工作。但是我找到了 OracleServiceXE 而不是 OracleServiceORCL。
流动流动的步骤:
编辑 $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)
)
)
示例:
用户名:your_database_username
密码:Your_database_password
oracle_connection_alias:上述示例的SCHEMADEV。
您需要告诉 SQLPlus 您要登录到哪个数据库。主机字符串需要是连接字符串或在 TNSNames.ora 文件中配置的别名。
ORA-12560: TNS:erro de aptador de protocolo
我尝试 2 选项:
可以应用以下修复程序来解决TNS 12560
错误
SQL*NET
客户端软件的最新补丁$ORACLE_HOME
和$PATH
变量(系统用户应该可以访问)$TNS_ADMIN
变量在我的情况下,(ORA-12560:TNS 协议适配器错误)问题导致数据库连接问题,如数据库、用户名和密码。
一旦你得到了问题。最初,您必须检查连接详细信息,然后检查 oracle 服务等等。
我错过了一些连接细节,所以只有我得到TNS 协议适配器错误, 我将更改连接细节,它会工作正常。