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
时间: 2024-11-05 06:18:54

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

转:内存分配方式及常见错误

内存操作对于程序开发人员来说,永远是一块雷区.在这片区域,总是不断的埋雷.排雷,而且往往是排雷花了非常大的代价.记得在公司实习时,有大概2个星期的时间,team的几个人去排雷——有地方发生了memory leak! 而以我现在的认知来看,只有极少数的programer敢拍着胸脯说,非常熟悉内存操作,手到擒来不会排雷.针对这个情况,我要求自己在尽量去探索,以求少埋雷.甚至不埋雷(这是一个很大的挑战).以下内容摘自<高质量C++/C编程指南>(作者: 林锐 博士),以警醒自己.更多详细.深入的东西

C++:内存分配

系统蓝屏,很大原因都是系统自身代码有缺陷引起的,而系统代码缺陷很大程度上与内存分配不当有关.由于内存分配不当引起的堆栈溢出.缓冲区溢出等问题,常常会导致系统瘫痪甚至崩溃,所以理解内存分配对于一名合格的程序媛而言非常有必要. 内存分配的形式 内存泄露 缓冲区溢出 内存分配的形式 一个由C/C++编译的程序所占用的系统内存一般分为以下几个部分的内容: (1)有符号起始的区块(Block Started by Symbol,BSS)段:BSS段通常是指用来存放程序中未初始化的全局数据和静态数据的一块内

[C++常见面试笔试题汇总] 程序设计基础 - 内存分配、sizeof、指针篇

2 内存分配 系统蓝屏,很大原因都是系统自身代码有缺陷引起的,而系统代码缺陷很大程度上与内存分配不当有关.由于内存分配不当引起的堆栈溢出.缓冲区溢出等问题,常常会导致系统瘫痪甚至崩溃,所以理解内存分配对于一名合格的程序员而言非常有必要. 2.1 内存分配的形式有哪些? 一个C/C++编译的程序所占用的系统内存一般分为以下几个部分的内容: (1) 由符号起始的区块(Block Started by Symbol, BSS)段:BSS段通常是指用来存放程序中未初始化的全局数据和静态数据的一块内存区域

Memcache 内存分配策略和性能(使用)状态检查

前言: 一直在使用Memcache,但是对其内部的问题,如它内存是怎么样被使用的,使用一段时间后想看看一些状态怎么样?一直都不清楚,查了又忘记,现在整理出该篇文章,方便自己查阅.本文不涉及安装.操作.有兴趣的同学可以查看之前写的文章和Google. 1:参数 memcached -h memcached 1.4.14 -p <num> TCP端口,默认为11211,可以不设置 -U <num> UDP端口,默认为11211,0为关闭 -s <file> UNIX soc

关于c语言内存分配,malloc,free,和段错误,内存泄露

1.   C语言的函数malloc和free (1) 函数malloc和free在头文件<stdlib.h>中的原型及参数        void * malloc(size_t size) 动态配置内存,大小有size决定,返回值成功时为任意类型指针,失败时为NULL. void  free(void *ptr) 释放动态申请的内存空间,调用free()后ptr所指向的内存空间被收回,如果ptr指向未知地方或者指向的空间已被收回,则会发生不可预知的错误,如果ptr为NULL,free不会有任

fastjson反序列化使用不当导致内存泄露

分析一个线上内存告警的问题时,发现了造成内存告警的原因是使用fastjson不当导致的. 分析dump发现com.alibaba.fastjson.util.IdentityHashMap$Entry对象比较多. 查找相关文档: fastjson IdentityHashMap 内存泄漏排查 (这篇文档分析描述的情况与我们遇到的问题的原因一样,是使用com.alibaba.fastjson.util.ParameterizedTypeImpl不当导致的) fastjon官方在很早的版本就修复过类

Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误。

ylbtech-Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误.如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误. 1.返回顶部 1. “/”应用程序中的服务器错误. 由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件

JAVA中堆栈和内存分配

(一).栈.堆 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中.)3. 堆:存放所有new出来的对象.4. 静态域(属于方法区) :存放静态成员(static定义的)5. 常量池 (属于方法区):存放字符串常量和基本类型常量(public static final).6. 非RAM存储:硬盘等永久存储空间这里我们主要关心栈

【转】深入JVM系列(一)之内存模型与内存分配

http://lovnet.iteye.com/blog/1825324 一.JVM内存区域划分 大多数 JVM 将内存区域划分为 Method Area(Non-Heap),Heap,Program Counter Register, Java Method Stack,Native Method Stack 和Direct Memomry(注意 Directory Memory 并不属于 JVM 管理的内存区域).前三者一般译为:方法区.堆.程序计数器.但不同的资料和书籍上对于后三者的中文译