内存修改
斯里兰卡,从awr 报告看db_cache_size 太小,就准备调带其sga
的大小。经过多次的测试才成功。现将调整sga的过程总结一下。
事先先备份spfile
create pfile='/opt/oracle/my.pfile' from spfile;
oracle11g 下有以下几个参数
memory_max_target \ memory_target \sga_max_size \ sga_target
sga 中
数据缓冲池:db_cache_size
共享池:shared_pool_size
大池:large_pool_size
JAVA池:java_pool_size
流池:straems_pool_size
方法1. 采用内存自动管理
alter system set memory_max_target=9000m scope=spfile;
alter system set memory_target=9000m scope=spfile;
alter system set sga_max_size=0 scope=spfile;
alter system set sga_target=0 scope=spfile;
这些参数要重启数据库才生效
方法2:自已手工管理
去掉
*.memory_max_target=16106127360
*.memory_target=16106127360
*.sga_max_size=16106127360
*.pga_aggregate_target=0
将在新的pfile中添加上。
这些参数包括:
*.pga_aggregate_target=4194304000
*.shared_pool_size=2000000000
*.db_cache_size=16777216000
*.large_pool_size=33554432
注意事项
有时会报ora-27102
可修改/ect/sysctl.conf
调整kernel.shmmax = 4294967296 调整到目标大小
生效
/sbin/sysctl -p
/sbin/sysctl -p
如果你安装oracle11g在linux系统山,则你设置的MEMORY_TARGET 或者MEMORY_MAX_TARGET不能超过共享内存段/dev/shm 的大小,
有如下错误ORA-845: MEMORY_TARGET not supported on this system
如果设置的过大,则需要扩展共享内存段的空间,例如:
# mount -t tmpfs shmfs -o size=7g /dev/shm
也可以通过修改/etc/fstab 来达到扩展的目的:
shmfs /dev/shm tmpfs size=7g 0
这种错误的发生也可能是没有mount上共享内存段:/dev/shm,可以通过执行以下命令来确认是否和以下输出类似:
$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
ipcs 可是查看内存segment 使用情况
ipcrs 可以清楚内存使用segment