1、检查alter文件警告信息,如下:
WARNING: EINVAL creating segment of size 内存地址
fix shm parameters in /etc/system or equivalent
则说明系统内核参数设置不合理或与SGA不匹配,检查/proc/sys/kernel/shmmax配置文件
oracle@eGroup2:~> cat /proc/sys/kernel/shmmax
2147483648
确认共享内存段为2G
2、检查SGA设置
SQL> show sga
Total System Global Area 4108759040 bytes
Fixed Size 2166128 bytes
Variable Size 2197815952 bytes
Database Buffers 1895825408 bytes
Redo Buffers 12951552 bytes
确认SGA大小为4G,超过shmmax的2G设置,这样将导致oracle为其分配多个共享内存段
3、检查交换区
oracle@eGroup2:~> top
top - 08:43:25 up 33 days, 2:08, 2 users, load average: 0.02, 0.03, 0.00
Tasks: 160 total, 1 running, 156 sleeping, 3 stopped, 0 zombie
Cpu(s): 0.9%us, 0.2%sy, 0.0%ni, 98.4%id, 0.0%wa, 0.1%hi, 0.4%si, 0.0%st
Mem: 8118112k total, 5689536k used, 2428576k free, 397052k buffers
Swap: 2104472k total, 212k used, 2104260k free, 3733452k cached
查看到这里使用了2G的SWAP,而物理内存剩余也还有2G,没有用完,所以不会产生大量交换导致出现异步I/O的问题
若出现物理free空间过低的情况时,则需缩小SGA设置
4、再次确认SGA、物理内存调整后的状态