问题现象:

数据库服务器可以ping通,但SSH连接不了;应用、plsqldeveloper 也都连接不了。事情到了这个地步,只能重启服务器。

服务器环境:oracle10.2.0.1 +rhel5.8

重启后,查看实例日志:

Wed Apr 30 13:12:24 2014
Memory Notification: Library Cache Object loaded into SGA
Heap size 2210K exceeds notification threshold (2048K)
KGL object name :XDB.XDbD/PLZ01TcHgNAgAIIegtw==
Wed Apr 30 14:00:16 2014
Thread 1 advanced to log sequence 24932
Current log# 1 seq# 24932 mem# 0: /data/oracle/product/10.2.0/db_1/oradata/urpdb/redo01.log
Wed Apr 30 15:00:16 2014
Thread 1 advanced to log sequence 24933
Current log# 3 seq# 24933 mem# 0: /data/oracle/product/10.2.0/db_1/oradata/urpdb/redo03.log
Wed Apr 30 15:15:05 2014
Thread 1 advanced to log sequence 24934
Current log# 2 seq# 24934 mem# 0: /data/oracle/product/10.2.0/db_1/oradata/urpdb/redo02.log
Wed Apr 30 15:16:02 2014
Thread 1 advanced to log sequence 24935
Current log# 1 seq# 24935 mem# 0: /data/oracle/product/10.2.0/db_1/oradata/urpdb/redo01.log
Wed Apr 30 15:17:42 2014
Thread 1 cannot allocate new log, sequence 24936
Checkpoint not complete

查看系统日志

Apr 30 15:37:17 wiscomApp1 kernel: [<c0456331>] out_of_memory+0x72/0x1a5

Apr 30 15:37:17 wiscomApp1 kernel: [<c0457806>] __alloc_pages+0x216/0x297
Apr 30 15:37:17 wiscomApp1 kernel: [<c0458a73>] __do_page_cache_readahead+0xc4/0x1c6
Apr 30 15:37:17 wiscomApp1 kernel: [<c045304c>] sync_page+0x0/0x3b
Apr 30 15:37:17 wiscomApp1 kernel: [<c044e161>] __delayacct_blkio_end+0x32/0x35
Apr 30 15:37:17 wiscomApp1 kernel: [<c06077cf>] __wait_on_bit_lock+0x4b/0x52
Apr 30 15:37:17 wiscomApp1 kernel: [<c0452fc7>] __lock_page+0x52/0x59
Apr 30 15:37:17 wiscomApp1 kernel: [<c04558e3>] filemap_nopage+0x151/0x312
Apr 30 15:37:17 wiscomApp1 kernel: [<c045f306>] __handle_mm_fault+0x1d0/0xb62
Apr 30 15:37:17 wiscomApp1 kernel: [<c0609886>] do_page_fault+0x2a5/0x5d3
Apr 30 15:37:17 wiscomApp1 kernel: [<c0448f0d>] audit_syscall_entry+0x14b/0x17d
Apr 30 15:37:17 wiscomApp1 kernel: [<c06095e1>] do_page_fault+0x0/0x5d3
Apr 30 15:37:17 wiscomApp1 kernel: [<c0405a71>] error_code+0x39/0x40

通过这2个日志可以看出,在13:12分,实例日志提示sga中有数据内存超出默认值

操作系统在15:37:17报错内存溢出。这个内存溢出应该和实例有直接关系。

再次查看服务器环境:物理内存8G,但sga只有2G。另外无意中发现操作系统是32-bit Red Hat Linux,晕啊!

当时的第一想法,要想彻底解决这个问题,只能重新安装操作系统,再安装数据库,迁移数据。

后来,想看看实例中下面这段报错什么意思,

Memory Notification: Library Cache Object loaded into SGA
Heap size 2210K exceeds notification threshold (2048K)

于是发现了http://blog.itpub.net/519536/viewspace-659979这篇文章对这个分析的很好;

但从这个系统的实际情况说,这个只能是次要问题。真正要解决问题,还是上面的办法。

==============摘录链接文章中关键部分:===========================

在Oracle 10.2.0.1版本数据库中隐含参数_kgl_large_heap_warning_threshold默认值是2M,

该参数控制加载到内存中对象的大小,当加载的对象大于2M时,就会在alert警告文件中进行提示。

2M的默认大小相对太小,因此在10.2.0.1版本中可能很容易遇到这个报错信息。

该参数默认值在10.2.0.2版本中进行了调整,调整到了50M。

alter system set "_kgl_large_heap_warning_threshold"=52428800 scope=spfile;

然后重启实例。

Memory Notification: Library Cache Object loaded into SGA的更多相关文章

  1. 笔记:Memory Notification: Library Cache Object loaded into SGA

    笔记:Memory Notification: Library Cache Object loaded into SGA在警告日志中发现一些这样的警告信息:Mon Nov 21 14:24:22 20 ...

  2. sga之library cache 内部原理

    一.概述 library cache(库缓存)是shared pool中的一块内存区域,它的主要作用是缓存刚刚执行过的sql语句和pl/sql(包括存储过程.包.函数.触发器)所对应的解析计划.解析树 ...

  3. 如何使用event 10049分析定位library cache lock and library cache pin

    Oracle Library Cache 的 lock 与 pin 说明 一. 相关的基本概念 之前整理了一篇blog,讲了Library Cache 的机制,参考: Oracle Library c ...

  4. Oracle内存详解之 Library cache 库缓冲

    Oracle内存详解之 Library cache 库缓冲 2017年11月09日 11:38:39 阅读数:410更多 个人分类: 体系结构 Library cache是Shared pool的一部 ...

  5. Oracle内存详解之二 Library cache 库缓冲-转载

    Library cache是Shared pool的一部分,它几乎是Oracle内存结构中最复杂的一部分,主要存放shared curosr(SQL)和PLSQL对象(function,procedu ...

  6. Library cache lock/pin详解

    Library cache lock/pin 一.概述 ---本文是网络资料加metalink 等整理得来一个实例中的library cache包括了不同类型对象的描述,如:游标,索引,表,视图,过程 ...

  7. 11g等待事件之library cache: mutex X

    11g等待事件之library cache: mutex X 作者: dbafree 日期: 2012 年 07 月 01 日发表评论 (0)查看评论   library cache: mutex X ...

  8. 共享内存shared pool (3):Library cache

    Shared pool物理层面上由许多内存块(chunck)组成.从逻辑功能划分,Shared pool主要由三部分组成:Library cache,Dictionary cache和Control ...

  9. Library cache lock 故障解决一例

    今天收到同事电话,说是数据库中一张名为acct_balance进行操作是奇慢,第一反映是不是扫行计划有问题,结果我错了,现将过程记录下来. 用pl/sql连上数据库情况:1.对acct_balance ...

随机推荐

  1. Android中的动画总结

    文章主要内容来源<Android开发艺术探索>,部分内容来源网上的文章,文中会有链接. Android系统提供了两个动画框架:属性动画框架和View动画框架. 两个动画框架都是可行的选项, ...

  2. GeoServer自动发布地图服务

    1 NetCDF气象文件自动发布案例 GeoServer是一个地理服务器,提供了管理页面进行服务发布,样式,切片,图层预览等一系列操作,但是手动进行页面配置有时并不满足业务需求,所以GeoServer ...

  3. 【java】httpclient的使用之java代码内发送http请求

    场景: 需要本项目发送HTTP请求到另一个项目中,处理完成返回值给本项目. 1.本项目引入架包 <!-- httpclient 后台发送http请求--> <dependency&g ...

  4. SocketIO总结

    我在马克飞象上写的一样的内容,感觉那个样式好看的:WorkerMan的部分总结 workerman中部分函数总结 以下是把我搜集到的资料进行了一个整合.详细怎么使用.慢慢摸索吧. Worker类 中文 ...

  5. MySQL主从复制技术与读写分离技术amoeba应用

    MySQL主从复制技术与读写分离技术amoeba应用 前言:眼下在搭建一个人才站点,估计流量会非常大,须要用到分布式数据库技术,MySQL的主从复制+读写分离技术.读写分离技术有官方的MySQL-pr ...

  6. 我对Lamport Logical Clock的理解

    建议先看论文原文再来看这篇文章,我不会对论文中的各个点都具体说明.仅仅是写一些我自己的想法,帮助理解. 大家都知道.分布式环境下.确定各个事件发生的顺序非常重要,不然就会发生一些麻烦的问题. 考虑一下 ...

  7. 通过jstl判断是否给value 赋值

    <input type="text" name="saler.password" id="password"  value=" ...

  8. vue2.0 + vux (三)MySettings 页

    1.MySettings.vue <!-- 我的设置 --> <template> <div> <img class="img_1" sr ...

  9. Java序列化算法

    Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程.java序列化API提供一种处理对象序列化的标准机 ...

  10. C#文件操作与编程

    一:驱动器System.IO 软盘,优盘,光盘,硬盘 DriveInfo/DriveType DriveInfo:确定有关驱动器的信息:盘符,类型,可用空间 DriveType:确定DriveInfo ...