`

ora-27100shared memory realm already exists(20120529修改)

 
阅读更多
这个问题一般情况下,是因为调整内存参数的时候出现问题了,而且数据库在启动的时候,没有办法去使用正确的参数文件启动。所以就会一直在使用错误的参数文件启动,就会报这个错误,数据库就启动不起来。我遇到的是这种情况,解决方法就是用数据库初始化的init的那个文件启动后,再把内存参数提供OEM调整回去。重新启动数据库一下,没事了,但是我们做的数据库不是实时性要求非常高的。而且程序在连接不上数据库时,会暂时的堆积处理文件,所以我可以重新启动数据库,而且不影响大局,假如你要是也跟我一样的话,应该也可以,但是也要考虑你自己的数据库是那种类型的再做。把网上的一个不错的文章摘抄过来,感谢作者。嘿嘿。
     

    整理这篇文章的原因是前段时间帮网友远程解决一个问题时,用startup pfile='d:/1.ora';时总是报错ORA-27100,最后是用oradim删除了服务后再创建服务后解决。

一直比较郁闷,所以做了一下测试,终于搞清楚了原因。


测试环境:系统物理内存2G,ORACLE9.2.0.8及ORACLE10.2.0.1,sga_max_size=500M,SPFILE启动。

错误模拟,设置sga_max_size=200G

SQL> alter system set sga_max_size=200000000000 scope=spfile;

系统已更改。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORA-27102: out of memory
OSD-00022: Message 22 not found;  product=RDBMS; facility=SOSD

O/S-Error: (OS 存储空间不足,无法处理此命令。
SQL> startup;
ORA-27100: shared memory realm already exists
SQL> shutdown immediate;
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SQL> startup;
ORA-27100: shared memory realm already exists
SQL>
这个错误的意思是实例共享内存的空间已经存在,但是实际上自己又没有启动数据为实例。

      检查参数文件后,生成一个新的pfile='d:/1.ora',把sga_max_size改成正确的值(500M),然后关闭服务,重新启动服务后,再进入sqlplus

SQL> startup pfile='d:/1.ora';
ORA-27100: shared memory realm already exists


错误依旧,但是这时明明自己没有启动实例啊。

       仔细分析一下,这是windows服务及oracle的问题,oracle在windows启动中如果由于sga_max_size的问题,实例不会启动成功,但是仍然会有一个错误的实例存,shutdown immediate及shutdown abort都关闭不了。由于缺省安装时,oracle在windows服务启动时会自动启动实例,所以每次启动服务都会自动用默认的错误的spfile启动实例,导至内存错误。

知道问题的原因后,解决的办法就很简单,解决的办法以下两种:
1.关闭服务,删除数据库的spfile文件,用新的正确的pfile启动后,再生成新的spfile;
2.设置数据库在服务启动时不自动启动实例,再用正确的pfile启动实例,然后再生成新的spfile。


如何设置数据库在服务启动时不自动启动实例有以下两种方法:
1.直接修改注册表HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0下的数据库对象项ORA_MYDB_AUTOSTART值为false
2.使用ORACLE安装的工具Administration Assistant for Windows NT修改数据库启动关闭选项。



   以上是我摘抄的部分,感谢作者的实验,但是和我情况不太一样,而且我没用他的方法,不适合我的情况和原因,我的方法很简单:
找到D:\oracle\admin\orcl\pfile\目录下的init.ora.32720121360,复制路径和文件名。
  sys用户连上数据库,然后startup pfile=D:\oracle\admin\orcl\pfile\init.ora.32720121360;
  这个时候,数据库应该可以启动了了,(在实际应用中,发现即使这样,也有可能启动不起来,方法为重启大法!重新启动oracle的主服务。然后重新连接即可。)启动后,打开OEM,调整内存参数到原来的正常的时候的,但是如果数据库被重新启动后,依然还是会去读原来的那个有问题的参数文件,可以通过OEM看到使用那个参数文件启动的;
   接下来,就create spfile from pfile创建正常的参数文件,数据库重新启动下,应该就正常了。
   纯属个人在实践中总结出来的,有疑问可以讨论。
 
分享到:
评论

相关推荐

    ORA-27101: shared memory realm does not exist.

    NULL 博文链接:https://snowelf.iteye.com/blog/507976

    sga调整过大oracle无法启动解决方案

    在 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

    Oracle数据库在运行过程中,经常会遇到各种错误代码,错误代码ORA-00845是其中的一个,它是指“MEMORY_TARGET not supported on this system”。这个错误一般发生在尝试在不支持MEMORY_TARGET参数的系统上设置该参数...

    ORACLE ORA-00132 ORA-00214

    - **修改`init<sid>.ora`文件**: 修改`init<sid>.ora`文件中的`local_listener`参数,确保其值为`(ADDRESS_LIST=(Address=(PROTOCOL=tcp)(HOST=your_hostname)(PORT=1521)))`,其中`your_hostname`应替换为实际的...

    Oracle 11gr2连Oracle 19c 报ORA-28040 ORA-01017解决方法.pdf

    Oracle数据库不同版本间的客户端与服务端的连接问题通常涉及到安全和兼容性配置,这篇文章主要讲述了在Oracle 11g R2客户端尝试连接Oracle 19c服务端时,遇到了两个特定的错误:ORA-28040和ORA-01017,以及如何解决...

    使用工具IMPDP导入数据时ORA-39002、ORA-39070错误排查

    在使用Oracle Data Pump工具IMPDP(Import Data Pump)进行数据导入的过程中,可能会遇到ORA-39002和ORA-39070等错误。本文将针对这些错误的排查方法进行详细介绍,帮助用户理解问题的原因及解决策略。 ### 错误...

    ora-00604错误解决方法

    ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法ora-00604 错误 解决 方法

    Oracle数据库发生ORA-04031错误原因浅析及处理.pdf

    1. 通过调整SHARED_POOL_SIZE、SHARED_POOL_RESERVED_SIZE和SHARED_POOL_RESERVED_MIN_ALLOC三个参数来解决ORA-04031错误。 2. 通过查询V$SHARED_POOL_RESERVED视图来确定ORA-04031错误是否由共享池保留空间中的碎片...

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    ORA-04052p5731178_92080_WINNT.zip

    ORA-00604: 递归SQL层1出现错误 ORA-03106: 致命的双工通信协议错误 ORA-02063: 紧接着line(源于dblink) 以及 ORA-04052: 在查找远程对象时出错 ORA-00604: 递归SQL层1出现错误 ORA-03120: 双工转换例行程序:整数...

    ORACLE8I数据库应用EXP工具时ORA-06553报错的解决方法.pdf

    ORACLE8I数据库应用EXP工具时ORA-06553报错的解决方法 摘要:本文主要解决ORACLE 8I数据库应用EXP工具时ORA-06553报错的问题,分析出现问题的原因,并提供了正确的解决方法和措施。 知识点1:Oracle 8I数据库EXP...

    关于创建oracle 连接时报以下错误,ORA-01017 ORA-02063

    在创建Oracle数据库连接时遇到的错误ORA-01017和ORA-02063涉及到用户认证问题以及Oracle数据库版本之间的差异处理。ORA-01017错误表示用户名或密码无效,登录被拒绝,而ORA-02063则通常表示在Oracle数据库之间进行...

    Oracle12cRAC数据库 出现ora-12520, ora-12516

    ### Oracle12cRAC数据库出现ora-12520, ora-12516问题解析 #### 一、问题概述 在使用Oracle12cRAC(Real Application Clusters)数据库的过程中,可能会遇到客户端连接时出现ora-12520或ora-12516错误的问题。这两...

    如何处理错误ORA-29275:部分多字节字符

    ### 如何处理错误ORA-29275:部分多字节字符 #### 问题背景与描述 在Oracle数据库操作过程中,用户可能会遇到一个特定的错误提示——ORA-29275:部分多字节字符。这一错误通常出现在执行查询`SELECT * FROM V$...

    ora-227101错误解决办法

    下面将详细解析“ORA-27101: shared memory realm does not exist”这一错误及其解决办法,同时提及可能伴随的“ORA-01034: ORACLE not available”和“ORA-01033: ORACLE initialization or shutdown in progress”...

    Oracle 10g启动后报ORA-16038错误的解决方法

    ### Oracle 10g启动后报ORA-16038错误的解决方法 #### 错误概述 在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be ...

    oracle重启报错ORA-00702解决办法

    然而,在日常运维过程中,我们可能会遇到各种错误,比如“ORA-00702”就是其中之一。这个错误通常在尝试重启Oracle数据库服务时出现,意味着数据库实例在启动过程中遇到了问题。本文将详细介绍如何在Windows和Linux...

    离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法

    ### 离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法 #### 概述 在Oracle数据库管理过程中,偶尔会遇到因误操作导致的数据文件出现问题的情况,例如误删除数据文件或者数据文件损坏等。这些问题可能会...

    Oracle_ORA-12518故障_处理

    ### Oracle ORA-12518 故障处理 #### 概述 在Oracle数据库管理过程中,遇到ORA-12518错误是较为常见的问题之一。此错误通常发生在客户端试图连接到数据库服务器的过程中,当监听器无法将客户端连接顺利地移交给...

Global site tag (gtag.js) - Google Analytics