当前位置:  数据库>oracle

Oracle RAC系统内存无法释放解决方法

    来源: 互联网  发布时间:2017-06-23

    本文导语: 交代一下环境,是现网实时生产数据库主机。Hp-ux 11.31+Oracle 10.2.0.4.0 RAC集群。两台机器户外RAC,essdb3与essdb4两台机器。物理内存128G,SGA分配64G,PGA分配5G。早上发现essdb4主机glance运行只有6G的空闲内存。使用如下命令进行简单分...

交代一下环境,是现网实时生产数据库主机。Hp-ux 11.31+Oracle 10.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_MEM from v$session a, v$process b where a.PADDR=b.ADDR and a.sid ='&sid'
输入刚刚得到的SID号。算出一个空闲进程大概占用的内存,系统总的PGA的使用基本上稳定在1.29G到2G之间(系统设置的PGA的最大值是5G),与往常相比也是一个非常合理的状态。

 SQL>  select sum(PGA_USED_MEM) from v$process;

SUM(PGA_USED_MEM)
-----------------
      1298679359

我们使用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

共享内存段状态为D - Delete,这在通常情况下是不正常的,这是一个Oracle用户占用的共享内存段,由于状态为D的共享内存段本身就是没有正常使用的内存段,所以满以为使用ipcrm –m id删除这个共享内存段,应该就可以解决问题,但是,当时上述做法的结果是系统报告找不到找个ID。
essdb4_oracle[/]#ipcrm -m 13893637
现在我们使用shminfo要使用root权限,查看一下当前到底哪个进程在使用找个共享内存段:
essdb4_oracle[/]#shminfo -s 13893637
sh: shminfo:  not found.
最后重启该节点数据库依然持有该共享内存,无果最后只能重启操作系统,得到释放,当前系统可用内存40G。


    
 
 

您可能感兴趣的文章:

  • ORACLE 如何查询被锁定表及如何解锁释放session
  • Oracle释放undo表空间
  • 深入探讨:Oracle中如何查询正锁表的用户以及释放被锁的表的方法
  • Oracle连接数过多释放机制
  • Oracle 监听内存泄露问题
  • fedora10安装oracle11g提示物理内存不足怎么办?
  • 通过进程id号知道一个Oracle会话所占用的内存
  • ■帮一个朋友维护网站,oracle运行半小时就自动锁死,用top发现是其狂吃内存,直到吃完为止。怎么办啊
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • 我准备装linux 7.3,大家能给点意见吗,我1GB的内存,那么交换区设多大? oracle9i能在7.3上通过吗?
  • Oracle安装过程中物理内存检查及临时temp空间不足问题解决
  • 读一个10M的txt文件到Oracle数据库中,用C实现,请问有什么好的方法吗?即不怎么占内存,又不怎么占Cpu!
  • 甲骨文宣布推出Oracle内存数据库11g
  • Oracle内存数据库11g和高速缓存11g上市
  • Oracle Siebel Option Pack for IE ActiveX控件内存初始化漏洞
  • Oracle专用服务器的内存结构分布原则
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 修改oracle用户的.bash_profile之后无法正常登陆
  • 安装oracle9时,安装界面的字体无法正确显示,怎么解决啊???
  • 64位win7下pl/sql无法连接oracle解决方法
  • 安装oracle9的时候字符无法显示??
  • Linux下Oracle数据库,dbstart持续不动,数据库无法启动解决
  • linux新建oracle用户无法登陆系统 大家帮帮忙
  • 解决Linux下Oracle无法关闭数据库的问题
  • Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除
  • AS3安装Oracle 9.2.0前,打补丁出错,导致系统无法引导.大侠们帮忙
  • oracle9i安装时.installer启动后,界面无法显示中文.
  • Oracle数据库无法加载_OraMTS_的解决方法
  • Oracle 11G 无法连接到数据库实例故障排除
  • 我想配一个编程平台windowsXP+VisualStudio.net或者+Jbuilder,或Linux+oracle,用来做开发,我的电脑已经远远无法满足其要求,,不值
  • oracle修改SGA后无法启动问题分析及解决方法
  • Oracle用户密码含有特殊字符导致无法登陆解决方法
  • 关于Oracle启动无法启动netmgr问题的解决
  • Oracle 10g的DBA无法登录解决方案
  • 修改计算机名或IP后Oracle10g服务无法启动的解决方法
  • oracle 9i Linux 下安装时出现 无法建立inventory目录,你可能没有相应权限,请高手帮忙,100分,在线等!
  • PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3