在做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特性。
分享到:
相关推荐
Oracle数据库发生ORA-04031错误原因浅析及处理 Oracle数据库是甲骨文公司提供的一种分布式数据库管理系统,以分布式数据库为核心的软件产品。它具有完整的数据管理功能,作为一个关系数据库,它是一个非常实用的...
### ora-01033: Oracle Initialization or Shutdown in Progress 解决方法 #### 一、问题背景及原因 **标题**: “ora-01033: Oracle initialization or shutdown in progress 解决方法” **描述**: “ora-01033: ...
### 解决ORA-01033:Oracle正在初始化或关闭 #### 背景与问题解析 在Oracle数据库管理中,遇到ORA-01033错误是较为常见的问题之一,该错误通常出现在数据库启动或关闭的过程中。ORA-01033错误的全称是“ORA-01033:...
这意味着在当前配置下,Oracle 数据库试图分配比 `/dev/shm` 文件系统所能支持的更大的共享内存区域,从而引发了 ORA-00845 错误。 #### 解决方案 解决 ORA-00845 错误通常涉及两个主要步骤:确认系统是否支持 ...
### Oracle报错大全(珍藏版) #### ORA-00001: Unique Constraint Violated 当尝试插入或更新违反唯一约束的数据时触发此错误。例如,在具有唯一索引的列上插入重复数据。 #### ORA-00017: Rollback Segment Full...
### 离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法 #### 概述 在Oracle数据库管理过程中,偶尔会遇到因误操作导致的数据文件出现问题的情况,例如误删除数据文件或者数据文件损坏等。这些问题可能会...
Oracle数据库在运行过程中,经常会遇到各种错误代码,错误代码ORA-00845是其中的一个,它是指“MEMORY_TARGET not supported on this system”。这个错误一般发生在尝试在不支持MEMORY_TARGET参数的系统上设置该参数...
在Oracle数据库管理与维护的过程中,遇到各种错误代码是家常便饭,其中“ORA-227101”错误虽然在题目中被误标,实际案例中展示的是“ORA-27101”错误,这是一个较为常见的问题,通常发生在数据库服务未能正确启动或...
4. **Oracle 10g的自动内存管理**: 自从Oracle 10g引入自动内存管理后,SGA的动态组件如共享池可以自动扩展,减少出现ORA-04031的机会。当SGA_TARGET参数设置为非零值时,自动内存管理启用。通过`v$sga_dynamic_...
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-00064: 对象过大以至无法分配在此 O/S (,) * ORA-00065: FIXED_DATE 的初始化失败 * ORA-00066: LOG_FILES 为 但需要成为 才可兼容 * ORA-00067: 值 对参数 无效;至少必须为 * ORA-00068: 值 对参数 无效,...
"Oracle SGA 参数调整导致数据库启动异常处理方法" 在 Oracle 数据库中,SGA(System Global Area)参数调整可能会导致数据库启动异常。这种情况下,需要了解 SGA 参数的调整方法和恢复数据库的方法。 一、SGA ...
- ORA-00064: 对象过大以至无法分配在此O/S。当数据库中的对象太大,无法在操作系统上分配足够的空间时,将出现此错误。这通常要求增加操作系统的存储容量。 - ORA-00065: FIXED_DATE的初始化失败。在数据库实例...
#### ORA-00064: 对象过大以至无法分配在此O/S(,) 当尝试在操作系统中分配的对象超出限制时触发。 #### ORA-00065: FIXED_DATE的初始化失败 当 `FIXED_DATE` 初始化失败时触发。 #### ORA-00066: LOG_FILES为但...
"Oracle 11g调整物理内存提示ORA-00845 MEMORY_TARGET" Oracle 11g 中的内存自动管理机制 ===================================== Oracle 11g 中引入了一个新的内存自动管理机制,即 MEMORY_TARGET 参数,这个...
ORA-00063:对象过大以至无法分配在此 O/S (,) ORA-00064:FIXED_DATE 的初始化失败 ORA-00065:LOG_FILES 为 但需要成为 才可兼容 网络管理错误 ORA-00100:未找到数据 ORA-00101:系统参数 DISPATCHERS 的说明...