当前位置:首页 > 内存 > 正文

oracle内存分配与调整(oracle内存)

  • 内存
  • 2024-07-03 01:01:43
  • 3447

一、Oracle10g安装过后怎样调整内存分配大小对于ORACLE10g来说,要看你是否使用ASMM(自动共享内存管理,11g是AMM)。如果是这样,只需设置参数:sga_target和pga_aggregate_target。至于比例,是基于之前OLTP的设计,系统较大,占用空间较多,这个比较正常,因为OLAP时不需要SGA太大。
但如果你想自己设置各个详细参数,只需将上述参数设置为0,ASMM就会自动关闭(对应MMAN流程,10g和11g在这个流程中不会有任何改变)),然后设置常规设置如下参数:
1.数据缓冲区:
数据缓冲区的大小db_cache_sizeDEFAULT区域的大小,也是默认大小
数据缓冲区db_keep_cache_size保存的是region的大小,是不会被覆盖的内存区域
数据回收区db_recycle_cache_siez的大小,是使用后几乎都会被回收的内存区域
2.共享池
Shared_pool_size
内部存储SQL信息、数据字典和控制信息,其实这部分最好不要自己控制,自己管理就好。它有一个参数:shared_pool_reserved_size,也可以在适当的时候进行配置。
如果你想使用rman相关的东西,你需要建立一个大池。如果ORACLE内部没有JAVAPROD,JAVA池几乎没用做流复制,只需设置一个流池即可。
PGA一般设置最大值,并且通常会在内部自行调整(PGA一般由一段内存和一些后台进程组成。专用模式和共享模式是有区别的(MTS中有些内部详细参数根据CPU而定(例如DBWR最多可以包含20个,最小为1,可以根据CPU数量来设置,但一个实例最多也可以包含20个)。SORT_AREA_SIZE、hash_area_size等可以设置用户进程查询时创建的内存量(如果超过这个值,就会存放在临时表空间中)。


二、Oracle10g最大可分配内存数问题,请数据库高手给予解答,详细问题见下:是的,32位Oracle只能使用1.5G内存(实际是1.7G左右)即使你让操作系统识别更多内存,Oracle也没有办法使用。不过,32位Oracle可以通过强制参数绕过1.5G内存限制,但据说极不稳定。我曾经尝试按照传说中的方法突破极限,但是没有成功。后来我换了64位环境。如果性能不理想,从可靠性和稳定性方面考虑,强烈建议切换到64位环境,即64位操作系统+64位Oracle。
是的,系统升级和迁移是不可避免的。当然,如果不想这样做,适当扩大pga的容量,当然相应的结果可能是sga的减少,这就是Oracle性能调整的过程。
三、oracleSGA,PGA内存分配,急.....1
Oralce10g自动启动SGA和PGA内存分配。基本上不需要你去适应。您需要做的就是为整个实例分配尽可能多的内存。
您的原因可能是:
您的oracle正在运行,并且总内存分配给每个进程。您分配时要考虑总内存。即“拆东墙补西墙”。
必须通过SGA_TARGET参数为此实例设置可用于其SGA的总内存容量。那么你就不必担心oracle内的特定发行版会自动管理它
2
查看你将表导入到哪个表空间中。然后简单地增加该表空间的容量