1.修改挂载参数,linux运行就了重启会强制检测磁盘,将最后2个数据全设置为0
[root@ora29 ~]#cat /etc/fstab
2.修改SGA使用大小
[root@ora29 ~]# cat /etc/sysctl.conf
kernel.shmall=x 可用共享内存的总量,单位页;x*页大小/1024/1024= G
kernel.shmmax=y 单个共享内存段的最大数;y/1024/1024/1024= G
kernel.shmmni=z 单个共享内存段的最小值;z单位是bytes,一般都是4K
[root@ora29]#tune2fs -l /dev/sda1| grep "Block size"查看块大小,到内存中即页大小
cat >> /etc/sysctl.conf 《 EOF
kernel.shmall = 7340032
kernel.shmmax = 34359738368
EOF
3.修改PGA参数
alter system set sga_max_size=22526m scope=spfile;
alter system set sga_target=22528m scope=spfile;
alter system set pga_aggregate_target = 6144m scope=spfile;
4.如若数据文件以后有大量增加需要修改db_files,修改完成需要重启。
SYS>show parameter db_files
SYS>alter system set db_files=9300 scope=spfile ;
5.修改完成后查看修改结果
[oracle@ora29 ~]$ ipcs -l
扩展:
并不是所有的SGA内存区都能被SGA_TARGET控制,在10g中,只有5个部分的的内存会再实例运行中,由oracle自动调整其使用的内存空间:
DB_CACHE_SIZE
SHARE_POOL_SIZE
JAVA_POOL_SIZE
LARGE_POOL_SIZE
STREAMS_POOL_SIZE
另外
SGA_TARGET:设置为0,则为手动设置;大于0,则SGA内存将会自动分配。
STATISTICS_LEVEL:设置为TYPICAL或ALL,以便收集到足够的统计信息,否则oracle没有先关统计信息作为参照,就无法确定如何分配SGA各部分的内存。