今天测试服务器遇到问题
ORA-04030:out of process memory when trying to allocate string bytes
一看就猜到是内存不足了,把Oracle给累坏了
Oracle版本;Oracle 10.2.0
操作系统:Windows Server 2003
于是,直接查了下怎么修改Oracle内存大小的命令:
alter system set sga_max_size=2048M scope=spfile;
然后果断重启Oracle,于是杯具就产生了,Oracle起不来了,出现异常
ORA-27100: shared memory realm already exists
以前也遇到过修改WAS内存大小起不来的情况,难道也是相同的原因?
网上查了下,貌似真是这样
Oracle process使用的内存数量是有一定限制的:
A. 对于32位系统,有SGA 1.7G限制
B. 某些OS系统本身也有一些内存参数限制,比如Linux可以运行ulimit查看
C. OS系统本身物理内存+Swap的限制
怎么办?想办法改回去呗先
于是,继续查找改回Oracle内存的方法
找到了这篇帖子
http://blog.csdn.net/yzsind/article/details/2868340
已经说明了修改的方法
大体意思就是spfile中的内存信息已经更新,需要重建
遗憾的是博主却没有说明怎么具体修改
甚至找到这篇文章
http://www.cnblogs.com/pdfpatcher/archive/2012/03/16/2400536.html
直接编辑二进制的spfile文件,尝试了一番,使用二进制文件编辑器编辑之后的spfile文件,Oracle是不识别的,也许是二进制文件编辑器的版本问题,总之,没有成功
经过实践,总结ORA-27100: shared memory realm already exists问题的解决办法如下:
1、sqlplus /nolog登录,然后conn /as sysdba切换dba身份;
2、关闭Oracle服务,如果shutdown命令无法使用,直接从服务管理器中关闭或者杀掉进程;
3、使用pfile启动Oracle服务
pfile在哪里?可以使用Oracle安装时自带的,目录一般在
${ORACLE_HOME}/db_1/admin/orcl/pfile/init.ora.xxxxxxxxxxxx
startup命令如下:
startup pfile="D:\Oracle\10.2.0\db_1\admin\orcl\pfile\init.ora.514201432247"
4、使用如下命令重建spfile文件
create spfile = 'D:\Oracle\10.2.0\db_1\dbs\SPFILEORCL.ORA' from pfile='D:\Oracle\10.2.0\db_1\admin\orcl\pfile\init.ora.514201432247'>
其中,spfile参数是要重建生成的spfile文件路径,pfile参数是Oracle的pfile文件模板;
如果重建的spfile文件路径不在${ORACLE_HOME}/db_1/dbs目录,需要人工拷贝过去
5、重启Oracle服务,或者重启服务器,验证问题是否解决;
6、重新调整Oracle的SGA参数为合适的值,解决最初的问题。
分享到:
相关推荐
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. 使用 ...
### ora-01033: Oracle Initialization or Shutdown in Progress 解决方法 #### 一、问题背景及原因 **标题**: “ora-01033: Oracle initialization or shutdown in progress 解决方法” **描述**: “ora-01033: ...
在深入探讨解决方案之前,我们首先需要了解ORA-29275错误的具体原因。这一错误的发生通常与以下因素有关: 1. **表中的VARCHAR2字段存储了多字节字符**:如果某个字段的数据类型为VARCHAR2,并且其长度限制不足以...
在本篇文章中,我们将深入探讨这个问题的原因、解决方案以及如何正确地授权和管理Oracle数据库的权限。 1. **错误原因**: - 用户未被授予执行特定操作所需的系统权限,例如UPDATE、DELETE、SELECT或INSERT。 - ...
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
在Oracle数据库系统中,"ORA-01036:非法的变量名/编号"是一个常见的错误,通常出现在PL/SQL代码或者SQL查询语句中,当你尝试使用一个不正确或者未定义的变量时,Oracle数据库会抛出这个错误。这个错误可能是由于...
oracle12c程序连接时异常: ORA-01017: 用户名/口令无效; 登录被拒绝 的解决方案。
ORA-00604: 递归SQL层1出现错误 ORA-03106: 致命的双工通信协议错误 ORA-02063: 紧接着line(源于dblink) 以及 ORA-04052: 在查找远程对象时出错 ORA-00604: 递归SQL层1出现错误 ORA-03120: 双工转换例行程序:整数...
#### ORA-00021: Unable to Lock Memory in Shared Pool 当Oracle试图锁定共享池中的内存但失败时触发。这可能是因为操作系统的限制或配置问题。 #### ORA-00022: Error Getting Lock ID 获取锁ID时出错,通常是...
SQL>alter system set control_files=’/u01/app/oracle/oradata/prod/ora_control1.ctl’,’/u01/app/oracle/oradata/prod/ora_control2.ctl’ scope=spfile; 解决方法: 1.show parameter spfile; 这时候可以...
在Oracle数据库系统中,"ORA-00060: 等待资源时检测到死锁" 是一个常见的错误提示,它表明两个或多个事务在执行过程中陷入了无法继续进行的状态,因为彼此都在等待对方释放资源。这种情况通常发生在并发操作中,比如...
ORA-12154: TNS: 无法解析指定的连接标识符的解决方法
在处理这类问题时,有几种常见的解决方案: 1. **分块插入**: 当你的数据长度超过了4000个字符,你可以选择分批插入。例如,你可以将大字符串分割成多个小于或等于4000字符的小字符串,然后逐个插入。这可以通过...
### Oracle 10g启动后报ORA-16038错误的解决方法 #### 错误概述 在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be ...
总之,面对"ORA-00904: 'WM_CONCAT': 标识符无效"的错误,理解新版本Oracle的特性变化,并根据需要选择合适的替换方法,是解决问题的关键。同时,定期更新和优化代码,使其符合最新的数据库标准,是保持数据库高效...
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
### Oracle回收站功能详解与彻底删除表方法 #### 一、Oracle回收站功能概述 Oracle数据库自10g版本开始引入了回收站功能(Recycle Bin),这一特性为数据库管理员提供了一种简单而强大的方式来恢复误删的数据对象。...