如何动态扩大oracle

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

如何动态扩大oracle9iSGA区中的内存空间?Oracle9i具有动态SGA的功能,用操作系统命令查看系统内存时,发现系统中还有空闲内存.但为什么有时使用oracle9i的sqlaltersystemsetdb_cache_size=xxxxM命令时数据库会报告错--没有足够的内存.这是由操作系统引起的吗?不是,原因在于此时SGA区中没有多余空闲内存。尽管系统中有空闲内存,但未分配给SGA区。在oracle9i中动态SGA的概念是无需经过关闭实例(instance),修改初始化参数文件和重启实例这一过程,就可动态调整buffercache和sharepool的大小。另外,动态SGA允许在实例运行时设置,下次启动时将有多少物理内存分配给SGA这一数据库参数。SGA可用最大物理内存是由SGA_MAX_SIZE参数来决定的。在启动实例时,大小为SGA_MAX_SIZE的内存就分配给了SGA,SGA成员(buffercache,sharepool等)根据参数值也会获得相应的内存。实例启动后SGA的各成员所用内存之和可以小于SGA_MAX_SIZE。数据库管理员通过使用altersystem命令来调整SGA成员间的内存分配。当SGA中有足够多的空闲内存时,增大sharepool或buffercache才能完成,否则会报内存不足。另外Sharepool和buffercache的尺寸也可动态缩小。当实例已启动,SGA已达到SGA_MAX_SIZE值,可通过先减少某一成员的内存,再增加另一成员的内存来完成。SGA成员间是相互独立的,在成员间分配内存时,其和一定不能大于SGA_MAX_SIZE,并且db_cache_size参数不能等于0。在OLAP与OLTP混合型的应用环境中,利用动态SGA的功能,可以根据不同时刻应用的优先级,来动态的调整buffercache和sharepool的尺寸,以提高系统的性能:a.当OLTP应用优先级高时,缩小buffercache的值,增大sharepool的值;b.当OLAP应用优先级高时,缩小sharepool的值,增大buffercache的值。例如:1.增大buffercache尺寸SQLshowparameterdb_cache_size;显示当前bufferchache的大小NAMETYPEVALUE------------------------------------------------------db_cache_sizebiginteger4194304SQLaltersystemsetdb_cache_size=8M;增大buffercache到8MB。Systemaltered.SQLshowparameterdb_cache_size;NAMETYPEVALUE------------------------------------------------------db_cache_sizebiginteger83886082.调整参数SGA_MAX_SIZE(需重启实例)SQLaltersystemsetSGA_MAX_SIZE=1000Mscope=spfile;Systemaltered.3.增大shared_pool_size尺寸假设,初始参数值为:SGA_MAX_SIZE=128MDB_CACHE_SIZE=88MSHARED_POOL_SIZE=32MSQLALTERSYSTEMSETSHARED_POOL_SIZE=64M;设置share_pool的内存为64MErrorORA-04033,insufficientmemorySQLALTERSYSTEMSETDB_CACHE_SIZE=56M;减少buffercache的大小SQLALTERSYSTEMSETSHARED_POOL_SIZE=64M;ErrorORA-04033,insufficientmemory需要等buffercache释放完,才可扩大sharepool的大小SQLselect*fromv$buffer_pool;检查内存释放是否完成。SQLALTERSYSTEMSETSHARED_POOL_SIZE=64M;Systemaltered.

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功