粗浅记录Oracle RAC系统内存无法释放

简介:

交代一下环境,是现网实时生产数据库主机。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。



本文转自yangjunfeng 51CTO博客,原文链接:http://blog.51cto.com/yangjunfeng/1792231

相关文章
|
运维 Oracle 前端开发
Oracle 11g RAC集群日常运维命令总结
Oracle 11g RAC集群日常运维命令总结
723 2
|
存储 负载均衡 Oracle
|
存储 Oracle 关系型数据库
|
Oracle 关系型数据库
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
405 0
|
8月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
664 93
|
7月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
365 0
|
10月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
8月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
527 8
|
10月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
457 11

热门文章

最新文章

推荐镜像

更多