粗浅记录Oracle RAC系统内存无法释放
交代一下环境,是现网实时生产数据库主机。Hp-ux 11.31+Oracle10.2.0.4.0 RAC集群。 两台机器户外RAC,essdb3与essdb4两台机器。 物理内存128G,SGA分配64G,PGA分配5G。早上发现essdb4主机glance运行只有6G的空闲内存。 使用如下命令进行简单分析: SQL> select distinct sid from v$mystat; 得到sid,算算一个空闲进程占用的pga有多大。 SQL>select b.PGA_USED_MEM PGA_USED_MEM,b.PGA_ALLOC_MEM PGA_ALLOC_MEM,b.PGA_FREEABLE_MEM PGA_FREEABLE_MEM,b.PGA_MAX_MEM PGA_MAX_MEMfrom v$session a,v$process bwhere a.PADDR=b.ADDR and a.sid ='&sid' 输入刚刚得到的SID号。算出一个空闲进程大概占用的内存,系统总的PGA的使用基本上稳定在1.29G到2G之间(系统设置的PGA的最大值是5G),与往常相比也是一个非常合理的状态。 SQL>selectsum(PGA_USED_MEM)fromv$process; 我们使用ipcs观察共享内存段的使用情况: essdb4_oracle[/var/adm/syslog]$ipcs -mb IPC status from /dev/kmem as of Thu Jun 23 10:18:00 2016 T ID KEY MODE OWNER GROUP SEGSZ Shared Memory: m 0 0x411c06cb --rw-rw-rw- root root 348 m 1 0x4e0c0002 --rw-rw-rw- root root 61760 m 2 0x4120077b --rw-rw-rw- root root 8192 m 3 0x00a5c581 --rw------- sfmdb users 10469376 m 4 0x411c14fb --rw------- root root 4096 m 13893637 0x00000000 --rw-r----- oracle oinstall 18790481920 m 6 0x06347849 --rw-rw-rw- root root 65544 m 7 0x0c6629c9 --rw-r----- root root 22614264 m 32776 0x01205c0a --rw-rw-r-- root root 4192 m 9 0x00000000 D-rw-rw-r-- root root 4192 m 10 0x00000000 D-rw-rw-r-- root root 4192 m 11 0x4918a061 --rw-r--r-- root root 22912 m 12 0x0120468b --rw-rw-r-- root root 4192 m 13 0x00000000 --rw-r----- oracle oinstall 18807521280 m 14 0x00000000 --rw-r----- oracle oinstall 18807259136 m 15 0x00000000 --rw-r----- oracle oinstall 12367142912 m 16 0x3546761c --rw-r----- oracle oinstall 135168 共享内存的详细使用信息: essdb4_oracle[/]#ipcs -mb IPC status from /dev/kmem as of Thu Jun 23 13:42:57 2016 T ID KEY MODE OWNER GROUP SEGSZ Shared Memory: m 0 0x411c06cb --rw-rw-rw- root root 348 m 1 0x4e0c0002 --rw-rw-rw- root root 61760 m 2 0x4120077b --rw-rw-rw- root root 8192 m 3 0x00a5c581 --rw------- sfmdb users 10469376 m 4 0x411c14fb --rw------- root root 4096 m 13893637 0x00000000 D-rw-r----- oracle oinstall 18790481920 m 6 0x06347849 --rw-rw-rw- root root 65544 m 7 0x0c6629c9 --rw-r----- root root 22614264 m 32776 0x01205c0a --rw-rw-r-- root root 4192 m 9 0x00000000 D-rw-rw-r-- root root 4192 m 10 0x00000000 D-rw-rw-r-- root root 4192 m 11 0x4918a061 --rw-r--r-- root root 22912 m 12 0x0120468b --rw-rw-r-- root root 4192 m 13 0x00000000 --rw-r----- oracle oinstall 18807521280 m 14 0x00000000 --rw-r----- oracle oinstall 18807259136 m 15 0x00000000 --rw-r----- oracle oinstall 12367142912 m 16 0x3546761c --rw-r----- oracle oinstall 135168
essdb4_oracle[/]#ipcrm -m 13893637 现在我们使用shminfo要使用root权限,查看一下当前到底哪个进程在使用找个共享内存段: essdb4_oracle[/]#shminfo -s 13893637 sh: shminfo: not found. 最后重启该节点数据库依然持有该共享内存,无果最后只能重启操作系统,得到释放,当前系统可用内存40G。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |