oracle不启用自动内存,Oracle 11g 新特性之---Oracle 内存自动管理

Oracle 11g 新特性之---- Oracle 内存自动管理

Oracle 11g 以后,Oracle 实现了对内存的自动管理,减轻了DBA管理的工作量,以下是Oracle官方对内存管理的解释:

Oracle have made great strides in simplifying memory management over the last few versions of the database. Oracle 9i automated PGA management by introducingPGA_AGGREGATE_TARGETparameter. Oracle 10g continued this trend by automating SGA management using theSGA_TARGETparameter. Oracle 11g takes this one step further by allowing you to allocate one chunk of memory, which Oracle uses to dynamically manage both the SGA and PGA.

At the time of writing, Automatic Memory Management (AMM) is only supported on the major platforms (Linux, Solaris, Windows, HP-UX, AIX).

AMM Parameters

Automatic memory management is configured using two new initialization parameters:: The amount of shared memory available for Oracle to use when dynamically controlling the SGA and PGA. This parameter is dynamic, so the total amount of memory available to Oracle can be increased or decreased, provided it does not exceed theMEMORY_MAX_TARGETlimit. The default value is "0".

: This defines the maximum size theMEMORY_TARGETcan be increased to without an instance restart. If theMEMORY_MAX_TARGETis not specified, it defaults toMEMORY_TARGETsetting.

When using automatic memory management, theSGA_TARGETandPGA_AGGREGATE_TARGETact as minimum size settings for their respective memory areas. To allow Oracle to take full control of the memory management, these parameters should be set to zero.

If you are using UNIX/Linux, before you consider using AMM you should check the current size of your shared memory file system. On Linux you do this by issuing the following command.

# df -k /dev/shm Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 1029884 350916 678968 35% /dev/shm #

The shared memory file system should be big enough to accommodate theMEMORY_TARGETandMEMORY_MAX_TARGETvalues, or Oracle will throw the following error.

ORA-00845: MEMORY_TARGET not supported on this system

To adjust the shared memory file system size issue the following commands, specifying the required size of shared memory.

# umount tmpfs # mount -t tmpfs shmfs -o size=1200m /dev/shm

Make the setting permanent by amending the "tmpfs" setting of the "/etc/fstab" file to look like this.

tmpfs /dev/shm tmpfs size=1200m 0 0

Oracle内存自动管理的配置:

一般来说,ORACLE实例内存=物理内存*80%

OLTP系统:

PGA=实例内存*20%

SGA=实例内存*80%

OLAP系统:

PGA=实例内存*50%

SGA=实例内存*50%混合型系统在二者之间

Oracle 应用之OLTP 和 OLAP:

OLTP与OLAP区别:

OLTP即联机事务处理,就是我们经常说的关系数据库,意即记录即时的增、删、改、查,要求实时处理、支持并发。程序员开发,企业应用基本是此类数据库。

OLAP即联机分析处理,是数据仓库的核心部心,所谓数据仓库是对于大量已经由OLTP形成的数据的一种分析型的数据库,用于处理商业智能、决策支持等重要的决策信息;

数据仓库是在数据库应用到一定程序之后而对历史数据的加工与分析。对数据的实时性、精确性要求不高,数据主要用于提供绐决策层作决策的依据。

确定内存容量后,对于PGA:使用WORKAREA_SIZE_POLICY设置为AUTO,表示PGA自动管理

用PGA_AGREGGATE_TARGET参数分配PGA

用SGA_TARGET参数分配SGA目标值

用SGA_MAX_SIZE分配SGA最大值

假设物理内存为4g的OLTP系统

设置PGA_AGGREGATE_TARGET和SGA_TARGET,表示分别启动PGA和SGA自动内存管理

sqlplus中配置参数

sql>alter system set WORKAREA_SIZE_POLICY=auto scope=spfile

sql>alter system set PGA_AGGREGATE_TARGET=655M scope=spfile

在用新的自动内存管理特性给数据库分配适当的尺寸之前,必须首先查找当前有多少内存分配给了SGA和PGA。但是并不意味简单的将sga_target和pga_target参数求和相加的内存需求。原因是:与sga_target参数不同,数据库不立即接管分配给pga_target参数的内存。数据库只根据pga_target参数设置将PGA分配给每个部分,因此,你的pga_target也许分配得很大,但是数据库在给定时间内却只是用了很小的一部分。

查询数据库内存信息:

SQL> show parameter memory

SQL> show parameter sga_max_size;

SQL> show parameter SGA_TARGET;

SGA_TARGET是oracle10g中用于实现自动SGA内存管理而新增加的。是可动态调整的,但其值不能大于sga_max_size。

通过ASMM可以实现对share pool、buffer cache、large pool、java pool、stream pool的自动管理

当使用sga_target时, 若未设置sga_max_size,或设置了小于sga_target,则sga_max_size将等于sga_target。

sql>alter system set SGA_TARGET=2620M scope=spfile

sql>alter system set SGA_MAX_SIZE=2620M scope=spfile

重启实例后生效。

注:

如果启用了内存的自动管理,可以不用设置SGA_TARGET 和PGA_AGGREGATE_TARGET 参数,由Oracle 自动管理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值