我正在使用 Oracle 10g R2。最近,重新启动服务器后,我开始遇到无法连接到实例的问题。我只在服务器本身本地连接。
奇怪的是,如果我启动数据库管理助手并选择我的实例以更改其设置,问题就会自行纠正。
有人知道这个问题的根源吗?
@akaDruid:我只是通过尝试在服务器上启动 SQLPlus 来测试我的连接。
@Matthew:这是 Windows
编辑:我认为我没有正确阅读您的问题:侦听器不应影响本地计算机上的连接,因此您可能会忽略其余的答案,除非它给您提示!你是如何测试你的连接的?ORA-12514 是唯一的错误吗?
(我假设您在这里使用 Windows)我猜当您重新启动服务器时侦听器不会自动启动,并且它正在 oracle 管理助手中启动 - 不幸的是,我没有使用该工具,所以不能说。
下次重新启动时,在启动 oracle 管理助手之前,打开命令提示符并键入 lsnrctl status。如果侦听器尚未启动,您将得到如下信息:
C:\Documents and Settings\user>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 27-OCT-2008 14:00:21
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC01)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
32-bit Windows Error: 2: No such file or directory
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server.domain.co.uk)
(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
32-bit Windows Error: 61: Unknown error
C:\Documents and Settings\user>lsnrctl status
如果它正在运行,你会得到这样的东西:
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 27-OCT-2008 14:03
:33
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC01)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
Start Date 27-OCT-2008 14:03:27
Uptime 0 days 0 hr. 0 min. 5 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
Listener Log File C:\oracle\product\10.2.0\db_1\network\log\listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC01ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server.domain.co.uk)(PORT=1521))
)
Services Summary...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCL1" has 1 instance(s).
Instance "ORCL1", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
C:\Documents and Settings\user>
如果侦听器未启动,请检查服务是否设置为自动。如果是,请检查 listener.ora 是否有意义,查看从 lsnrctl start 获得的输出等。
希望有帮助,或者至少让你走上正确的道路
您还没有指定这是 windows 还是 unix?
当 ORACLE_HOME 在启动 oracle 的帐户上的定义略有不同时,我在 unix 上看到过类似的问题,并且在连接帐户时,一个帐户具有 ORACLE_HOME=/usr/oracle ,另一个具有 ORACLE_HOME=/usr/oracle/ ,尾随斜线把事情搞砸了。
你究竟是如何启动服务器的,你有一个脚本来做,或者你是在内部连接并发出“启动”
再说一次,如果这是 Windows,我不知道 :)
我有同样的错误。转到http://localhost:1158/em显示侦听器已启动,但数据库实例已关闭。
单击实例旁边的“启动”按钮使其重新联机(我认为)
另一种可能的解释: