如何解决ORA-27100 shared memory realm already exists错误
这个错误的字面意思是:共享内存领域已经存在。
这个错误一般是在你发布STARTUP的时候碰上的。
具体操作步骤如下:
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 5月 22 10:09:13 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
select lower(user) || '@' || substr( global_name, 1,
*
第 1 行出现错误:
ORA-01034: ORACLE not available
idle> startup pfile='c:\init.ora'
ORA-27100: shared memory realm already exists
idle> ;
1 select lower(user) || '@' || substr( global_name, 1,
2 decode( dot, 0, length(global_name), dot-1) ) global_name
3* from (select global_name, instr(global_name,'.') dot from global_name )
idle> startup pfile='c:\init.ora';
ORA-27100: shared memory realm already exists
idle> quit
已断开连接
C:\Documents and Settings\Administrator>net stop oracleserviceorcl
OracleServiceORCL 服务正在停止.
OracleServiceORCL 服务已成功停止。
C:\Documents and Settings\Administrator>net start oracleserviceorcl
OracleServiceORCL 服务正在启动 .
OracleServiceORCL 服务已经启动成功。
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 5月 22 10:11:34 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
select lower(user) || '@' || substr( global_name, 1,
*
第 1 行出现错误:
ORA-01034: ORACLE not available
--删除原来的spfileorcl.ora文件,可先备份起来
idle> startup pfile='c:\init.ora';
ORACLE 例程已经启动。
Total System Global Area 591396864 bytes
Fixed Size 1250308 bytes
Variable Size 163580924 bytes
Database Buffers 419430400 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
idle> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 564M
sga_target big integer 564M
idle> create spfile from pfile='c:\init.ora';
文件已创建。
idle> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
idle> startup
ORACLE 例程已经启动。
Total System Global Area 591396864 bytes
Fixed Size 1250308 bytes
Variable Size 163580924 bytes
Database Buffers 419430400 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
idle> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string F:\ORACLE\PRODUCT\10.2.0\DB_1\
DATABASE\SPFILEORCL.ORA
idle> select open_mode from v$instance;
select open_mode from v$instance
*
第 1 行出现错误:
ORA-00904: "OPEN_MODE": 标识符无效
idle> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
idle>
错误原因:发生这样的错误,往往是在WINDOWS环境(但不是绝对,在LINUX和UNIX也会出现这种错误)。在WINDOWS环境中,ORACLE在WINDOWS的服务中有一个OracleServiceSID条目,要启动ORACLE,必须先启动WINDOWS的这个服务。但这个OracleServiceSID服务启动时,缺省是会启动ORACE实例和数据库(你可以用ORADIM这个实用工具去改这个缺省配置),ORACLE启动实例搜寻参数文件的顺序是这样的:
(1)优先顺序
– spfileSID.ora
– 缺省SPFILE
– initSID.ora
– 缺省PFILE
(2)指定的PFILE 可覆盖优先顺序
STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora
(3)PFILE 可指示要使用SPFILE(将下面的内容添加到PFILE文件中)
SPFILE = /database/startup/spfileDBA1.ora
SpfileSID,initSID以及缺省的SPFILE和PFILE的位置视操作系统而定,在LINUX和UNIX平台,这些文件位于$ORACLE_HOME/dbs 目录中,在WINDOWS平台,这些文件位于$ORACLE_HOME\database 目录中.安装完ORACLE数据库,在$ORACLE_HOME \admin\SID\pfile目录下有一个该数据库的INIT PFILE,里面包含了刚创建完数据库时的缺省配置。如果你不小心将ORACLE的实例参数改坏了,你可以COPY一份这个文件,将其重命名为initSID.ora,并用这个参数文件来启动ORACLE实例。
ORA-27100往往是你在不正确的更改了ORACLE实例参数后,并将其永久保存到SPFILE后,重启ORACLE服务时,ORACLE会以这个不正确的SPFILE来启动实例,虽然可能不会成功装载和打开数据库,但启动WINDOWS的服务:OracleServiceSID肯定会启动ORACLE实例,也就是说会分配SHARE MEMORY REALM(尽管ORACLE数据库没有启动),这时,你连接ORACLE,肯定是不成功的。当你试图用SQL PLUS登进去,发布STARUP时,ORA-27100就出来了。而当你发布SHUTDOWN时,因为ORACLE没有正确的启动,所以也不能成功关闭。
解决办法:将已破坏的spfileSID.ora从 $ORACLE_HOME\database或$ORACLE_HOME/dbs移除(为放心起见,最好先将其剪贴到另外一个地方,随便一个ORACLE启动时不会搜寻到的目录,如桌面或$ORACLE_HOME目录之外),重启WINDOWS的OracleServiceSID服务,然后,在SQLPLUS中,用先前COPY的那份initSID.ora启动ORACLE:
SQL>startup pfile=’$ORACLE_HOME \admin\SID\pfile\initSID.ora’;
成功启动后,将SPFILE用下面的命令恢复过来:
CREATE SPFILE FROM PFILE=’$ORACLE_HOME \admin\SID\pfile\initSID.ora’;
这相当于是将SPFILE的内容恢复到刚创建完ORACLE数据库时的缺省配置。你在创建完数据库后对SPFILE所做的修改会丢失。你必须重新启动ORACLE:
SQL>shutdown immediate;
SQL>startup;
这样以SPFILE启动ORACLE后,重新修改ORACLE的参数,将之前的修改重做一次(当然,你必须将之前的不正确的更改更正过来,否则,当你不正确的设置了ORACLE的参数后,又会破坏SPFILE)。
相关推荐
NULL 博文链接:https://snowelf.iteye.com/blog/507976
在 32 位 WINDOWS SERVER 2003 旗舰版、16G 内存、ORACLE10.1.0.2 环境下,将 ORACLE 的 SGA_MAX_SIZE 设置为 2G,但是在重启数据库时报错:ORA-27100 shared memory realm already exists。 解决方案: 1. 使用 ...
Oracle数据库在运行过程中,经常会遇到各种错误代码,错误代码ORA-00845是其中的一个,它是指“MEMORY_TARGET not supported on this system”。这个错误一般发生在尝试在不支持MEMORY_TARGET参数的系统上设置该参数...
ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法ora-00604 错误 解决 方法
在使用Oracle Data Pump工具IMPDP(Import Data Pump)进行数据导入的过程中,可能会遇到ORA-39002和ORA-39070等错误。本文将针对这些错误的排查方法进行详细介绍,帮助用户理解问题的原因及解决策略。 ### 错误...
解决ora-04031共享内存问题解决ora-04031共享内存问题解决ora-04031共享内存问题解决ora-04031共享内存问题
这篇文章主要讲述了在Oracle 11g R2客户端尝试连接Oracle 19c服务端时,遇到了两个特定的错误:ORA-28040和ORA-01017,以及如何解决这些问题。 ORA-28040错误是因为客户端和数据库服务器在版本兼容性上存在不匹配。...
1. 通过调整SHARED_POOL_SIZE、SHARED_POOL_RESERVED_SIZE和SHARED_POOL_RESERVED_MIN_ALLOC三个参数来解决ORA-04031错误。 2. 通过查询V$SHARED_POOL_RESERVED视图来确定ORA-04031错误是否由共享池保留空间中的碎片...
### Oracle 错误 ORA-00132 和 ORA-00214 解析及处理 #### 一、错误概述 在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行...
### 解决Drop Goldengate 用户时报ORA-00604 ORA-20782 ORA-06512问题 #### 一、问题背景与现象 在进行Oracle数据库管理过程中,经常会遇到需要删除用户的场景。当尝试执行`drop user goldengate cascade;`命令时,...
下面将详细解析“ORA-27101: shared memory realm does not exist”这一错误及其解决办法,同时提及可能伴随的“ORA-01034: ORACLE not available”和“ORA-01033: ORACLE initialization or shutdown in progress”...
ORACLE8I数据库应用EXP工具时ORA-06553报错的解决方法 摘要:本文主要解决ORACLE 8I数据库应用EXP工具时ORA-06553报错的问题,分析出现问题的原因,并提供了正确的解决方法和措施。 知识点1:Oracle 8I数据库EXP...
### 如何处理错误ORA-29275:部分多字节字符 #### 问题背景与描述 在Oracle数据库操作过程中,用户可能会遇到一个特定的错误提示——ORA-29275:部分多字节字符。这一错误通常出现在执行查询`SELECT * FROM V$...
### Oracle 10g启动后报ORA-16038错误的解决方法 #### 错误概述 在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be ...
### ORA-12560 TNS 协议适配器错误详解 #### 一、概述 在Oracle数据库管理过程中,经常会遇到各种各样的错误提示,其中“ORA-12560 TNS: 协议适配器错误”是较为常见的一种。这种错误通常发生在客户端尝试连接到...
ORA-00604: 递归SQL层1出现错误 ORA-03106: 致命的双工通信协议错误 ORA-02063: 紧接着line(源于dblink) 以及 ORA-04052: 在查找远程对象时出错 ORA-00604: 递归SQL层1出现错误 ORA-03120: 双工转换例行程序:整数...
### 创建物化视图ORA-12014错误解决方法 #### 背景介绍 在Oracle数据库中,物化视图(Materialized View)是一种用于优化查询性能的重要工具。它预先计算并存储了复杂的查询结果,从而在实际查询时能够快速地返回...
在创建Oracle数据库连接时遇到的错误ORA-01017和ORA-02063涉及到用户认证问题以及Oracle数据库版本之间的差异处理。ORA-01017错误表示用户名或密码无效,登录被拒绝,而ORA-02063则通常表示在Oracle数据库之间进行...
本文旨在详细介绍ORA-12518错误的成因、常见表现形式以及具体的故障排查方法,以帮助读者在实际工作中能够更高效地解决这一问题。 #### 目的 本文旨在探讨如何接近并解决ORA-12518/TNS-12518错误,并提供详细的...