本讲内容包括:
1.描述SGA当中的内存部件
2.使用自动共享内存管理
3.手动配置SGA参数
4.配置自动PGA内存管理
一:SGA内存部件
Database buffer cache:存储数据缓存
Redo log buffer: 存储redo log缓存
Shared pool: 存储data dictionary和library cache
Large pool: 可选项,用于支持并行DML,异步I/0,共享服务器的uga区以及备份和恢复,若未配置large pool,则备份恢复的时候将使用share pool
Java pool: jvm虚拟机使用,java代码运行平台
Streams pool: oracle流使用
二:自动共享内存管理
将sga_target和sga_max_size参数设置成一样,同时将statistics_level设置成typical,根据AWR自动收集的工作负载来动态调整SGA各部件大小,由操作系统上的mman进程负责进行动态内存调整
SQL> show parameter sga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 600M
sga_target big integer 600M
SQL> show parameter statistics;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
statistics_level string TYPICAL
timed_os_statistics integer 0
timed_statistics boolean TRUE
可以通过查看v$sga_dynamic_components视图来查看当前sga各内存部件的值大小,手工设置DB_CACHE_SIZE参数代表设置一个保证值,确保自动调整时不会低于该值
SQL> show parameter db_cache_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_cache_size big integer 0
SQL> alter system set db_cache_size=100M;
System altered
SQL> show parameter db_cache_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_cache_size big integer 100M
SQL> select component,current_size,min_size from v$sga_dynamic_components;
COMPONENT CURRENT_SIZE MIN_SIZE
---------------------------------------------------------------- ------------ ----------
shared pool 218103808 209715200
large pool 4194304 4194304
java pool 4194304 4194304
streams pool 8388608 8388608
DEFAULT buffer cache 385875968 385875968
KEEP buffer cache 0 0
RECYCLE buffer cache 0 0
DEFAULT 2K buffer cache 0 0
DEFAULT 4K buffer cache 0 0
DEFAULT 8K buffer cache 0 0
DEFAULT 16K buffer cache 0 0
DEFAULT 32K buffer cache 0 0
ASM