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;

  

原文地址:https://www.cnblogs.com/coffeebar/p/5269632.html