你的想法很重要-大家都来谈 (C)Copyright 2012 by WeiPt

oracle11g的内存分配不当,导致的错误ORA-01034,ORA-00838,ORA-27101

由于开发需要,oracle11g被应用于虚拟机,所以系统资源显得弥足珍贵,百度了一下就有答案。

用dba身份进入Oracle,笔者在plsql中对数据库进行管理:

show parameter sga; --显示内存分配情况

alter system set sga_max_size=200m scope=spfile; --修改占用内存的大小

注:在PL/SQL中 在command window中的Editor模式下使用以上命令

(转)

还有memory_target

alter system set memory_target=100m;

也正是因为这一句话导致oracle没能正常运行。

故障现象:

连接oralce,提示服务没有监听。

启动数据库出现ORA-01034,ORA-00838和ORA-27101错误。

而windows service中是正常的,OracleOraDb11g_home1TNSListener,OracleServiceXXX.

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>SQLPLUS /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 6月 30 10:35:33 2017

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> show parameters target
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0


SQL> startup
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 148M

经过摸索,解决方案如下

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>SQLPLUS /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 6月 30 10:35:33 2017

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


SQL> create spfile from pfile='C:\oracle\admin\xxx\pfile\init.ora.9312016162455'
;

文件已创建。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  208769024 bytes
Fixed Size                  2174320 bytes
Variable Size             146801296 bytes
Database Buffers           54525952 bytes
Redo Buffers                5267456 bytes
数据库装载完毕。
数据库已经打开。
SQL>

 估计是spfile文件配置问题,而此文件是二进制的,我们用pfile文件生成spfile文件。

记住首先打开

C:\oracle\admin\xxx\pfile\init.ora.9312016162455
这个文件,找到memory_target修改成209209200,即200m
posted @ 2017-06-30 11:38  weipt  阅读(1769)  评论(0编辑  收藏  举报

你的想法很重要-大家都来谈 (C)Copyright 2012 by WeiPt