`
yr512656630
  • 浏览: 321168 次
  • 性别: 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数据库是甲骨文公司提供的一种分布式数据库管理系统,以分布式数据库为核心的软件产品。它具有完整的数据管理功能,作为一个关系数据库,它是一个非常实用的...

    ora-01033:oracle initialization or shutdown in progress 解决方法

    ### ora-01033: Oracle Initialization or Shutdown in Progress 解决方法 #### 一、问题背景及原因 **标题**: “ora-01033: Oracle initialization or shutdown in progress 解决方法” **描述**: “ora-01033: ...

    解决ORA-01033 ORACLE 正在初始化或关闭

    ### 解决ORA-01033:Oracle正在初始化或关闭 #### 背景与问题解析 在Oracle数据库管理中,遇到ORA-01033错误是较为常见的问题之一,该错误通常出现在数据库启动或关闭的过程中。ORA-01033错误的全称是“ORA-01033:...

    ora-00845 ora-00845

    这意味着在当前配置下,Oracle 数据库试图分配比 `/dev/shm` 文件系统所能支持的更大的共享内存区域,从而引发了 ORA-00845 错误。 #### 解决方案 解决 ORA-00845 错误通常涉及两个主要步骤:确认系统是否支持 ...

    oracle报错大全(珍藏版)

    ### Oracle报错大全(珍藏版) #### ORA-00001: Unique Constraint Violated 当尝试插入或更新违反唯一约束的数据时触发此错误。例如,在具有唯一索引的列上插入重复数据。 #### ORA-00017: Rollback Segment Full...

    离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法

    ### 离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法 #### 概述 在Oracle数据库管理过程中,偶尔会遇到因误操作导致的数据文件出现问题的情况,例如误删除数据文件或者数据文件损坏等。这些问题可能会...

    Oracle 报错ORA-00845 MEMORY_TARGET not supported on this system

    Oracle数据库在运行过程中,经常会遇到各种错误代码,错误代码ORA-00845是其中的一个,它是指“MEMORY_TARGET not supported on this system”。这个错误一般发生在尝试在不支持MEMORY_TARGET参数的系统上设置该参数...

    ora-227101错误解决办法

    在Oracle数据库管理与维护的过程中,遇到各种错误代码是家常便饭,其中“ORA-227101”错误虽然在题目中被误标,实际案例中展示的是“ORA-27101”错误,这是一个较为常见的问题,通常发生在数据库服务未能正确启动或...

    ORA-04031故障分析处理

    4. **Oracle 10g的自动内存管理**: 自从Oracle 10g引入自动内存管理后,SGA的动态组件如共享池可以自动扩展,减少出现ORA-04031的机会。当SGA_TARGET参数设置为非零值时,自动内存管理启用。通过`v$sga_dynamic_...

    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 ...

    Oracle错误代码大全

    * ORA-00064: 对象过大以至无法分配在此 O/S (,) * ORA-00065: FIXED_DATE 的初始化失败 * ORA-00066: LOG_FILES 为 但需要成为 才可兼容 * ORA-00067: 值 对参数 无效;至少必须为 * ORA-00068: 值 对参数 无效,...

    oracle改sga导致数据库启动异常处理办法

    "Oracle SGA 参数调整导致数据库启动异常处理方法" 在 Oracle 数据库中,SGA(System Global Area)参数调整可能会导致数据库启动异常。这种情况下,需要了解 SGA 参数的调整方法和恢复数据库的方法。 一、SGA ...

    oracle数据库-错误编码大全

    - ORA-00064: 对象过大以至无法分配在此O/S。当数据库中的对象太大,无法在操作系统上分配足够的空间时,将出现此错误。这通常要求增加操作系统的存储容量。 - ORA-00065: FIXED_DATE的初始化失败。在数据库实例...

    oracle报错的详细列表

    #### ORA-00064: 对象过大以至无法分配在此O/S(,) 当尝试在操作系统中分配的对象超出限制时触发。 #### ORA-00065: FIXED_DATE的初始化失败 当 `FIXED_DATE` 初始化失败时触发。 #### ORA-00066: LOG_FILES为但...

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

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

    Oracle error code 大全

    ORA-00063:对象过大以至无法分配在此 O/S (,) ORA-00064:FIXED_DATE 的初始化失败 ORA-00065:LOG_FILES 为 但需要成为 才可兼容 网络管理错误 ORA-00100:未找到数据 ORA-00101:系统参数 DISPATCHERS 的说明...

Global site tag (gtag.js) - Google Analytics