17

所以我有一个 Oracle 实例,我知道它正在这个系统上运行,我已经向 oracle 用户发送了请求,并且我正在尝试使用“/ as sysdba”进行连接。但是,当我连接时,它说实例处于空闲状态。我知道数据库已启动并打开,因为我的应用程序正在与它交谈。我的路径(ORACLE_HOME 等)可能不正确:知道哪个不正确的设置可能会导致这种情况吗?

% sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on Mon Dec 8 09:23:22 2008

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to an idle instance.

09:23:22 SQL> Disconnected

% ps -ef | grep smon
 oracle  6961     1   0   Nov 05 ?           1:24 ora_smon_ORA003
%
4

13 回答 13

16

确保您的 ORACLE_HOME 设置与服务器启动时完全相同,我在 solaris 上看到了 oracle 9.2.0.5.0 的这个问题,

ORACLE_HOME=/opt/oracle
ORACLE_HOME=/opt/oracle/

是两个不同的东西,会导致本地连接问题。

于 2008-12-09T01:26:46.580 回答
8

这意味着数据库实例未安装或打开。执行启动命令,看看是否出现错误。

于 2008-12-08T15:42:41.783 回答
4

谢谢。它确实是 ORACLE_HOME 变量末尾的额外斜杠。

在我的情况下,看看奇怪 - 我登录到服务器并尝试连接但得到了上述错误。我知道该实例已启动并且数据库已打开。所以检查了 ORACLE_HOME,因为我有点意识到这种可能性。我看到的是 ORACLE_HOME 很好(即末尾没有额外的斜线)。然后当我读到这个线程时尝试了很多之后,它让我印象深刻。数据库以 ORACLE_HOME 开头,带有额外的前斜杠。所以数据库是从 ORACLE_HOME=/u01/app/oracle/product/10.2.0.3/ 开始的,而我一直在尝试 ORACLE_HOME=/u01/app/oracle/product/10.2.0.3 :(

再次感谢。

于 2011-06-29T08:37:32.327 回答
3

数据库不能在空闲的同时被您的应用程序使用。似乎 sqlplus 会话必须连接到与应用程序不同的实例。尝试在连接语句中指定连接标识符,如下所示:

sqlplus "/@ConnectIdentifier as sysdba"
于 2008-12-08T18:42:51.543 回答
2

大小写在 *nix 系统上很重要,因此请确保您的 ORACLE_SID 与实例名称完全匹配。在这种情况下,ORA003 与 ora003 不同。

于 2008-12-17T20:51:31.207 回答
2

从机器控制台尝试

export ORACLE_SID=your sid here
sqlplus /nolog
startup

我知道在windows上有一个命令可以创建一个服务来为你启动一个实例,或者admin -new -sid %ORACLE_SID% -intpwd %oracle_pwd% -startmode A

于 2009-03-12T04:53:38.607 回答
2

我有同样的问题。通过删除 ORACLE_HOME 末尾多余的“/”解决了它。

感谢分享——如果没有这个博客,诊断和解决这个问题真的很困难。

于 2013-03-14T06:51:53.417 回答
2

试试这个登录sqlplus sys/sys as sysdba

SQL> startup

输出应该是这样的:\n

Total System Global Area  467652608 bytes
Fixed Size          2214416 bytes
Variable Size         352323056 bytes
Database Buffers      104857600 bytes
Redo Buffers            8257536 bytes
Database mounted.
Database opened.
于 2019-01-04T13:24:42.283 回答
1

好的,这就是我发现的关于实例空闲的内容,它与 spfile.. 有时您init.ora位于其他地方

init.ora找到位置后尝试搜索

试试那个代码startup spfile="C:\location";

它会说该实例已启动。

那个对我有用

于 2011-11-21T21:57:37.737 回答
1

我在指定错误的 SID(xe 而不是 XE)时遇到了同样的问题。如果您使用 rpm 安装数据库,请检查 /etc/inid.d/oracle 中的所有环境

于 2015-06-05T04:12:57.493 回答
0

我尝试了 sqlplus dummy/dummy,它给了我实际的问题(内存不足)。我使内存可用,并且能够毫无问题地登录。

于 2015-02-12T05:30:09.580 回答
0

问题可能是由于数据库非常繁忙而无法打开会话。在这种情况下,连接使用任何用户,甚至是虚拟用户

sqlplus 虚拟/虚拟

会给你实际的问题,但不是空闲的实例。

于 2014-09-10T11:31:35.400 回答
0

只需输入:

shutdown abort

然后

startup
于 2019-07-01T08:03:11.953 回答