整理这篇文章的原因是前段时间帮网友远程解决一个问题时,用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 8) 存储空间不足,无法处理此命令。
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修改数据库启动关闭选项,如下图所示。

Oracle在Windows系统中出现的ORA-27100: shared memory realm already exists 的奇怪现象相关推荐

  1. widnows监控linux 内存,Linux_带你全面了解Linux系统内存监控,在Windows系统中查看内存的使用 - phpStudy...

    带你全面了解Linux系统内存监控 在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在Linux系统如何查看内存使用情况呢?下面和大家分享在Linux系统下查看内存使用情 ...

  2. ip设置 kali 重置_在 Windows 系统中如何重置 TCP/IP 协议堆栈修复网络连接问题

    Internet 在 TCP/IP 协议上工作,如果 TCP/IP 协议堆栈在 Windows 或任何其他操作系统(例如 Linux 或 MacOS)中无法正常工作,则您的 Internet 连接会出 ...

  3. windows系统中,在当前目录下打开cmd命令行的两种方法

    windows系统中,在当前目录下打开cmd命令行的两种方法 1.在当前路径地址栏中直接输入'cmd',然后回车. 2.在当前路径下,按住'shift'键同时点击鼠标右键,点击"在此处打开P ...

  4. Cmder命令行工具在Windows系统中的配置

    一.Cmder简介 Cmder:一款用于Windows系统中,可增强传统cmd命令行工具的控制台模拟器(类似于Linux系统中的终端控制窗口) 特点: 无需安装,解压即用 可使用较多Linux命令,如 ...

  5. Windows系统中让硬盘更快的九大绝招

    Windows系统中让硬盘更快的九大绝招 一.合理使用硬盘  何为合理使用硬盘呢?首先我们要了解硬盘盘片的物理结构.分区并格式化后的硬盘却是以扇区为基本单位的,一个分区是由若干个扇区构成的.那什么是扇 ...

  6. Windows系统中安装Python模块pip numpy matplotlib

    Windows系统中安装Python模块pip numpy matplotlib  [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/deta ...

  7. 在Windows系统中配置Google AddressSanitizer

    Google AddressSanitizer简介 AddressSanitizer (ASan) 是 C 和 C++ 的内存错误检测软件,它可以检测: 释放指针后继续使用 堆缓冲区溢出 栈缓冲区溢出 ...

  8. windows系统中创建线程常用哪几个函数,有什么区别?

    windows系统中创建线程常用哪几个函数? 在windows系统中创建线程的函数有: CreadThread,AfxBeginThread,_beginthread,_beginthreadex. ...

  9. mysql 重装,Windows系统中完全卸载MySQL数据库实现重装mysql

    一.在控制面板,卸载MySQL的所有组件 控制面板-->所有控制面板项-->程序和功能,卸载所有和MySQL有关的程序 二.找到你的MysQL安装路径,看还有没有和MySQL有关的文件夹, ...

最新文章

  1. 总结一下在使用某里云服务器的过程中出现过的一些问题
  2. 他们为什么选择中科大少年班?官方公布48名新生名单,有人因偶像曹原,有人只是不想经历高三...
  3. 穿了个GUI马甲的PyInstaller
  4. Python 从入门到精通:一个月就够了!
  5. Android华容道之一步一步实现-7-重构代码
  6. 洛谷 P4127 [AHOI2009]同类分布
  7. 分页与无限滚动在评论区的设计差异
  8. 微信小程序 下拉刷新页面时的加载状态
  9. 主存储器与CPU的连接
  10. leetcode - 62. 不同路径
  11. Dais-CMX系列现代计算机组成原理,01 十六位机运算器实验
  12. 2017.9.22 middle 失败总结
  13. C++之函数返回数组
  14. Covalent与智能合约平台Fantom达成合作,将集成其索引解决方案
  15. python 闭包_一起看流畅的python:函数装饰器和闭包
  16. [ZT]ASP.NET中如何防范SQL注入式攻击
  17. 创业型公司如何找有相同价值观的人(转)
  18. Gephi下载百度云加速,舒服了
  19. 伟大时刻:小米的命门
  20. Numpy 使用总结(三)

热门文章

  1. python对视频中美女下半身大长腿进行识别,小心脏受不了的千万别看!
  2. 解读SQL 内存数据库的细节
  3. 谈谈互联网里的各种圈子
  4. 天猫淘宝店铺数据统计与自动分析杜邦模型表
  5. EasyNVR视频智能监控平台使用EasyWasmPlayer播放器播放录像文件几秒后卡顿问题排查
  6. cfc 教程_通用开发人员第2部分的CFC
  7. 工业用THOMAS 776 SEK197,776 SEL202,776 SEK203脱水机的特征和用途
  8. 基于 Python 的图书借阅管理系统(附报告源码)
  9. 校园互助平台小程序 微信小程序毕业设计开发源码
  10. java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.gzl.cn.bean.Employee