SGA和PGA的分配原则及更改大小
1、首先介绍类型数据库:
- OLAP:数据仓库系统的主要应用,支持复杂的分析操作
- OLTP:主要是基本的、日常的事务处理,如银行交易。
2、SGA和PGA的分配原则
- OLTP:SGA=系统内存*0.56,PGA=SGA*(0.1~0.2)
- OLAP:SGA=系统内存*0.48,PGA=SGA*(0.45~0.65)
3、修改SGA大小,重启生效
show parameter sga --查询sga大小
alter system set sga_max_size=4096m scope=spfile;
alter system set sga_target=4096m scope=spfile;
shutdown immediate --关闭数据库
startup --启动数据库
若启动报错:out of memory
解决方法:
1)Linux下查询虚拟内存一个页面的大小:getconf PAGE_SIZE,结果为:4096byte=4K
2)查看共享内存也最大数:cat /proc/sys/kernel/shmall,结果为:524288
可得:524288*4/1024/1024=2G
若SGA+PGA>2G,则报错
3)修改共享内存为nG
n*1024*1024/4K=m
则修改共享最大内存也为m: echo "m" >/proc/sys/kernel/shmall
4、修改PGA大小,不用重启DB
show parameter pga;
alter system set workarea_sizez_policy =auto scope=both;
alter system set pga_aggregate_target=512m scope=both;