ORA-01034: ORACLE 不可用 ORA-27101: 共享内存领域不存在
Posted
技术标签:
【中文标题】ORA-01034: ORACLE 不可用 ORA-27101: 共享内存领域不存在【英文标题】:ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist 【发布时间】:2011-09-27 04:52:06 【问题描述】:我在尝试使用服务名称orcl
从客户端连接到服务器数据库时遇到上述错误。当我使用其他服务名称时它正在连接,即dms
下面是我的listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = dms)
(SERVICE_NAME = dms)
(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
# (PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(SERVICE_NAME = dms)
# (GLOBAL_DBANME = orcl)
(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
# (PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.53)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /home/oracle/app/oracle
and tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.53)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
#(SERVICE_NAME = orcl.localdomain)
(ORACLE_SID = dms)
(SERVICE_NAME = orcl)
)
)
DMS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.53)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dms)
(ORACLE_SID = dms)
)
)
请告诉我该怎么做?
【问题讨论】:
【参考方案1】:打开命令提示符并执行以下命令:
set oracle_sid=DATABASE NAME
sqlplus /nolog
conn sys/sys as sysdba
shutdown abort
startup
【讨论】:
你能帮我在 Linux 中使用相同的命令集吗?我正在使用 RHEL。 @EKta: 对于 linux:只需使用export ORACLE_SID=<your database name>
代替,其余相同
为什么当我尝试使用 'connect' cmd 连接时,我得到 ORA-27101,但是当我将 conn sys/sys 作为 sydba 时,我能够连接? 【参考方案2】:
有时,数据库不会正确挂载,所以我们需要手动挂载。为此,将其关闭并启动,然后安装。以 oracle 用户登录,然后运行以下命令:
sqlplus / as sysdba;
shutdown immediate;
startup nomount;
alter database mount;
alter database open;
【讨论】:
挂载然后闪回到以前的还原点为我修复它【参考方案3】:ORA-01034 和 ORA-27101 通常表示您尝试连接的数据库实例已关闭,并且您没有以有权启动它的用户身份连接。登录到服务器 192.168.1.53 并启动 orcl
实例,或者请您的 DBA 为您执行此操作。
【讨论】:
【参考方案4】:确保您的 ORACLE_HOME 和 ORACLE_SID 正确无误 要查看 Windows 中的当前值,请在命令提示符下键入
echo %ORACLE_HOME%
然后
echo %ORACLE_SID%
如果这些值不是您当前的 oracle home 和 SID,您需要更正它们。这可以在 Windows 环境变量中完成。
查看 this page for more info
【讨论】:
这个答案足够接近触发我的解决方案。尽管我的 $ORACLE_HOME 和 $ORACLE_SID 变量是正确的,但我的进程正在调用一个名为错误 SID 的参数文件。【参考方案5】:SQL> sqlplus "/ as sysdba"
SQL> startup
Oracle instance started
------
Database mounted.
Database opened.
SQL> Quit
[oracle@hcis ~]$ lsnrctl start
【讨论】:
startup
似乎不起作用,似乎数据库设置问题SQL> startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/opt/oracle/product/12.2.0.1/dbhome_1/dbs/initxe.ora'
对于新安装的 Oracle 19c 数据库,在创建任何数据库以供使用之前,这有助于启动我的数据库。我没有注意到我没有启动它,我想知道 ORA-01034 是从哪里来的。【参考方案6】:
在 Windows XP 上遇到了同样的问题。解决。 该错误是由于系统日志已满引起的。 控制面板 -> 管理工具 -> 事件查看器 右键单击应用程序日志,清除所有事件,可选择保存日志。 系统日志的相同过程。 重新启动,它应该可以工作。
【讨论】:
【参考方案7】:在cmd中运行:
sqlplus / as sysdba;
然后:
SQL> create pfile='c:/init.ora' from spfile;
删除init.ora
文件中的sga_target
行,然后:
SQL> create spfile from pfile='c:/init.ora';
SQL> startup;
【讨论】:
【参考方案8】:即使ORACLE_HOME
和ORACLE_SID
似乎设置正确,我也遇到了同样的错误。
问题出在ORACLE_HOME
,它不应该以斜杠字符结尾。当我删除结尾斜线时,它开始正常工作。
# ❌ INCORRECT
export ORACLE_HOME=/usr/local/oracle/11gR2/
# ✔️ CORRECT
export ORACLE_HOME=/usr/local/oracle/11gR2
所以,即使看起来一切都配置得很好,请检查你的变量。
【讨论】:
【参考方案9】:我在 SQLDeveloper “ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist”上创建连接时遇到了同样的问题
解决办法:
1.更新 listene.ora 文件以包含 SID。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
((GLOBAL_DBNAME = XE.DB)
((ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
((SID_NAME = XE)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = USMUMTBALAKDAS2.us.deloitte.com)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
Oraclexe 目录可能权限设置为“ReadOnly”,更改目录/子目录权限为读/写并重启监听服务。 问题解决了。
【讨论】:
【参考方案10】:我遇到了相同的 shared memory realm does not exist
症状(在 Windows 上),但原因不同。我刚刚安装了 Oracle (XE),经过一些故障排除后,确定我的安装已损坏,因为我安装它时存在 ORACLE_HOME 环境属性。
如果这是 TLDR,请跳至“So to resolve:”!
我最初的症状是:
Message 850 not found; No message file for product=NETWORK, facility=NL
显然,Windows 安装从注册表中读取 ORACLE_HOME 并且不需要(当然在我的情况下不应该...)环境属性。
去掉,如下:
-
编辑系统环境设置(Windows 键和启动
输入“env”,你应该会看到这个选项出现。
删除任何名为 ORACLE_HOME 的用户和系统环境变量,如果
展示。 (记下他们的价值观,主要是出于兴趣,但也可能是
如果您出于某种原因想将它们放回去,请使用!)
重新启动您的机器。不要只注销就搞砸 - 重新启动您的
机器。 Windows Oracle 安装默认使用 Windows 服务
并且您的安装目前非常糟糕 - 需要重新启动。
重新启动后,我能够收到除“无消息文件...”以外的错误消息,并可以开始查看问题所在。 将 ORACLE_SID 设置为 XE 并连接 @XE 我得到了这个页面中的错误,即以下症状:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
另一个症状是: 启动“开始”页面时,它无法连接,出现未找到错误(如果我没记错的话),尽管 Windows 侦听器和 XE 服务正在启动。如另一个答案中所述,这可能是由于未启动 Windows 服务。在我的情况下,这些服务已启动,因此其他配置错误。
此时,我想我的安装可能由于存在错误的 ORACLE_HOME 环境属性而出现严重错误,我应该重新安装。 (以前的重新安装没有帮助,但这些都是在我注意到 ORACLE_HOME 系统环境属性之前(可能是我一年前设置的!)。
所以要解决:
-
关闭所有查看 Oraclexe 安装目录的应用程序(editors/explorer/cmd 提示)
快速浏览添加/删除程序和卸载 OracleXe
仔细检查您是否没有在任何地方设置 ORACLE_HOME 环境属性,记住 - Windows 将使用注册表项来获取它。
重新启动(不要冒险 - 我们将长期致力于此!)
您确定没有 ORACLE_HOME 属性吗?
再次运行 Oracle 安装程序(作为本地管理员帐户,如果适用)
您应该能够对正常安装感到高兴。至少我做到了!
【讨论】:
【参考方案11】:在浪费了这么多时间之后,我才知道我的连接数据库的语法有错误。我使用的是冒号“:”而不是斜杠“/”。
(1) 如果你使用 sid 下面是获取连接的语法:
**"jdbc:oracle:thin:@hostname:port:SID"**
(2) 如果使用服务名,获取连接的语法如下:
"**jdbc:oracle:thin:@//hostname:port/servicename**"
【讨论】:
【参考方案12】:您的 listener.ora 配置错误。没有orcl服务。
【讨论】:
【参考方案13】:希望您已经解决了您的问题。如果您仍然遇到问题,请再次检查您是否在域帐户下安装此 Oracle。我发现一个线程说在域帐户下安装时 Oracle XE 给出了同样的错误。请改用本地帐户。
来源:
https://community.oracle.com/thread/2141735?start=0&tstart=0
【讨论】:
【参考方案14】:在我的例子中,我只需要恢复一个 9 岁的服务器,而 Oracle 给了我这个错误。
由于某种原因,服务器已被重命名,但 app/oracle/product/10.2.0/server/network/admin/listener.ora
文件仍使用旧主机声明 LISTENER。
我必须将我在/etc/hostname
中的名称放在/etc/hosts
中,并修复listener.ora
中使用的名称。
【讨论】:
【参考方案15】:也可以试试直接启动:
sqlplus /nolog
conn / as sysdba
startup
【讨论】:
【参考方案16】:我在尝试像这样启动 sqlplus
会话时看到了这个问题:
sqlplus /nolog
connect user/password
解决方法是删除/nolog
并转义user/password
:
sqlplus 'user/password'
【讨论】:
【参考方案17】:SQL> sqlplus "/ as sysdba"
SQL> 启动
Oracle instance started
------
Database mounted.
Database opened.
SQL> 退出
我也遇到了同样的问题。我尝试了上述步骤并 然后它对我有用。你可以试试。
【讨论】:
您的答案对现有的相同答案有何补充?以上是关于ORA-01034: ORACLE 不可用 ORA-27101: 共享内存领域不存在的主要内容,如果未能解决你的问题,请参考以下文章
windows10安装oracle11g报错ORA-01034ORA-01078
ORA-01034: ORACLE not available ORA-27101
ORACLE数据库逐步解决ORA-12541ORA-01034和ORA-27101ORA-00119和ORA00132的过程
ORA-01034: ORACLE not available解决
服务器断电导致的ORACLE异常 : ORA-00214 ORA-01033 ORA-01034 ORA-00172 ORA-27101