`
yr512656630
  • 浏览: 317542 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

oracle 修改SGA过大ORA-27102

阅读更多
在做sql查询的时候发现在2亿表中查询sql响应时间很慢,遂想修改sga

将出现的问题记录下来ORA-27102: out of memory

SQL> alter system set sga_max_size=5G scope=spfile;

System altered.

(这里需要注意在32位的win2003系统中我的内存是8g,但是分配给sga的最大内存不能超过1.7g,在64位系统可以)

导致出现ORA-27102

SQL> startup force


数据库启动不了,这里我找了自己的oracle本地home没有传说的spfile,将pfile文件夹中的
init.ora.118201118470文件进行编译启动,在重新打来sqlplus进入实例后

SQL> CREATE SPFILE FROM PFILE=\'E:\\ora9i\\admin\\eygle\\pfile\\init.ora\'; 
创建成功


在重新装载

SQL> startup force


启动成功。

我在修改的时候需要保证sga不能高于1.7g
所以又重新装载了遍

SQL> show parameter sga 
NAME                                 TYPE            VALUE

------------------------------------ --------------- ------------------------------

lock_sga                             boolean         FALSE

pre_page_sga                         boolean         FALSE

sga_max_size                         big integer     1000M

sga_target                           big integer     300M 


SQL> alter system set sga_max_size=1500m scope=spfile; 


SQL> alter system set sga_target=1000m scope=spfile; 



SQL> startup force


修改成功,数据库能正常访问!


SGA_TARGET:
在10g之前,SGA的各个内存区的大小都需要通过各自的参数指定,并且都无法超过参数指定大小的值,尽管他们之和可能并没有达到SGA的最大限制。此外,一旦分配后,各个区的内存只能给本区使用,相互之间是不能共享的。拿SGA中两个最重要的内存区Buffer Cache和Shared Pool来说,它们两个对实例的性能影响最大,但是就有这样的矛盾存在:在内存资源有限的情况下,某些时候数据被cache的需求非常大,为了提高 buffer hit,就需要增加Buffer Cache,但由于SGA有限,只能从其他区“抢”过来——如缩小Shared Pool,增加Buffer Cache;而有时又有大块的PLSQL代码被解析驻入内存中,导致Shared Pool不足,甚至出现4031错误,又需要扩大Shared Pool,这时可能又需要人为干预,从Buffer Cache中将内存夺回来。

有了这个新的特性后,SGA中的这种内存矛盾就迎刃而解了。这一特性被称为自动共享内存管理(Automatic Shared Memory Management ASMM),控制这一特性的,就仅仅是这个参数SGA_TARGE。设置这个参数后,你就不需要为每个内存区来指定大小了。SGA_TARGET指定了 SGA可以使用的最大内存大小,而SGA中各个内存的大小由Oracle自行控制,不需要人为指定。Oracle可以随时调节各个区域的大小,使之达到系统性能最佳状态的个最合理大小,并且控制他们之和在SGA_TARGET指定的值之内。一旦给SGA_TARGET指定值后(默认为0,即没有启动 ASMM),就自动启动了ASMM特性。
0
0
分享到:
评论

相关推荐

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

    Oracle数据库发生ORA-04031错误原因浅析及处理 Oracle数据库是甲骨文公司提供的一种分布式数据库管理系统,以分布式数据库为核心的软件产品。它具有完整的数据管理功能,作为一个关系数据库,它是一个非常实用的...

    ORACLE修改SGA后无法启动的临时解决方法

    ORACLE修改SGA后无法启动的临时解决方法.比较实用的东西

    ORA-27104,ORA-01565,ORA-27077,ORA-00093,ORA-01012,ORA-32001,SP2-0714,ORA-12547,sqlplus /nolog 连接不上

    ORA-27104: system-defined limits for shared memory was misconfigured –oracle的sga超过安装oracle配置的最大内存 ipcs -l —— Messages Limits ——– max queues system wide = 32768 max size of message ...

    调整参数后引起,ORA-00838: Specified value of MEMORY_TARGET is too small

    调整参数后引起,ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 3 2768M 的解决方案

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

    sga调整过大oracle无法启动解决方案文档记录了LINUX环境下将ORACLE的SGA设置过大导致数据库无法启动的解决方案

    oracle11G调整物理内存提示ORA-00845 MEMORY_TARGET

    "Oracle 11g调整物理内存提示ORA-00845 MEMORY_TARGET" Oracle 11g 中的内存自动管理机制 ===================================== Oracle 11g 中引入了一个新的内存自动管理机制,即 MEMORY_TARGET 参数,这个...

    oracle11g修改SGA大小后报错的详细解决方案.docx

    由于oracle.exe占用内存过高,修改SGA的大小后导致监听服务不能启动,数据库不能连接等一系列问题和错误,希望此资源能够帮你解决问题,或者给你带来帮助!

    Oracle错误代码大全.docx

    ORA-00064: 对象过大以至无法分配在此 O/S 这些错误代码都是与存储管理相关的,可能是由于存储管理、磁盘空间、文件系统等操作时出现的错误。 其他错误 ORA-00065: FIXED_DATE 的初始化失败 ORA-00066: LOG_FILES...

    更改ORACLE SGA的详细步骤

    更改ORACLE SGA的详细步骤 如果修改后启动不了ORACLE,还原ORACLE初始设置的方法方法: 2、使用dos端登录oracle Sqlplus /nolog; Conn / as sysdba; 3、找 pfile,在 /.../admin/XXX(服务名)/pfile 下,init.ora....

    oracle实例的内存(SGA和PGA)进行调整,优化数据库性

    oracle实例的内存(SGA和PGA)进行调整,优化数据库性

    oracle实例内存(SGA和PGA)调整

    Oracle 实例内存(SGA 和 PGA)调整 Oracle 实例内存调整是 Oracle 数据库性能优化的重要方面。SGA(System Global Area)和 PGA(Process Global Area)是 Oracle 实例中的两个主要内存区域。本文将详细介绍 SGA 和 ...

    32位Windows上使用超过1.7GB SGA的方法

    正常情况下,Oracle SGA在32位操作系统下的最高上限是1.7GB;若要调到1.7GB以上,就会提示ORA-27102(out of memory)错误。

    oracle10g课堂练习II(1)

    修改 SGA_TARGET 参数 8-24 禁用 ASMM 8-25 手动调整动态 SGA 参数的大小 8-26 程序全局区 (PGA) 8-27 自动 PGA 内存管理 8-29 PGA 管理资源 8-30 使用内存指导调整 SGA 的大小 8-31 使用内存指导调整 PGA 的...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    突破oracle for win2K的2G内存限制

    当我把SGA设置为1.56G的情况下,Oracle.exe进程占用的内存达到1.6G时,Oracle的客户端就无法再连进去了,报“ora-12500”的错误。据说Oracle在32 bit windows平台上有1.7G的限制,但是我不知道需要调整什么参数让...

    oracle修改SGA后无法启动问题分析及解决方法

    1、若数据库机器上没有装Console或者没有使用Console配置网络服务名.... 修改为: 代码如下: # listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora # Gen

    Oracle自学(学习)材料 (共18章 偏理论一点)

    1 Oracle 结构组件 目标 1-2 基本结构概述 1-3 Oracle 服务器 1-4 Oracle 实例 1-5 建立连接和创建会话 1-6 Oracle 数据库 1-7 物理结构 1-8 内存结构 1-9 系统全局区(SGA) 1-10 共享池 1-12 库缓存 1-13 数据字典...

    ora常用sql.rar

    Oracle的常用命令,包含查看系统的SGA区的状态,查看系统的锁,过滤表清除SQL生产,查看表空间袋使用情况,查插入表的性能,等等,这些都是DBA常用的一些命令,希望能给一些朋友带来帮助!!!

    oracle 在2003下修改使用内存大于1.7G的步骤

    Oracle 在 Windows 2003 下修改使用内存大于 1.7G 的步骤需要修改多个设置,包括 boot.ini 文件、Windows 注册表、初始化参数文件 init.ora 和注册表等,以便扩大 SGA 内存使用,并提高 Oracle 数据库管理系统的性能...

    Oracle11g体系结构深入剖析和运维管理(二)

    Oracle 11g体系结构深入剖析和运维管理(二)资源目录:【】10_SQL语句执行过程剖析【】11_SQL语句解析类型_硬解析_软解析【】12_shared内存块组成结构及4031错误产生原因分析【】13_共享SQL减少硬解析【】14_如何解决...

Global site tag (gtag.js) - Google Analytics