问题现象:

数据库服务器可以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. Java出现错误“Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )”的问题分析

    若出现:Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )这样的问题,一般是转义字符的问题,下 ...

  2. linux mysql添加用户名并实现远程访问

    第一步:登陆linux,在终端登陆mysql #mysql -u root -p 第二步:查询系统用户列表并进行添加用户 mysql>select host,user,password from ...

  3. eclipse中通过search打开第二个文件时 第一个文件就自己关闭了

    原文:http://blog.csdn.net/u014079773/article/details/66971053 问题:eclipse中通过search打开第二个文件时第一个文件就自己关闭了 问 ...

  4. 【spring mvc】后台的API,测试中,总提示接口实体的某一个字段不能为null,但是明明给值了还提示不能为空

    实体是这三个字段 接口的实现类Controller 前台测试给值 依旧报错 解决方法: 需要添加@RequestBody注解

  5. GOPATH设置

    go help gopath查看gopath的原文帮助信息 go env查看gopath的配置 GOPATH与工作空间 前面我们在安装Go的时候看到需要设置GOPATH变量,Go从1.1版本到1.7必 ...

  6. jquery的ajax的success和fail用法

    $.ajax({ type:"POST", url: url, contentType: 'application/json;charset=utf-8', data: JSON. ...

  7. C#中如何让ListView控件点击选中整行

    将Listview控件的FullRowSelect属性置为True,当然Listview的View属性应该是Details. 2017年6月25日17:15:55

  8. [LeetCode]Insert Interval 考虑多种情况

    写太复杂了. 思想:确定带插入区间的每一个边界位于给定区间中的哪个位置,共同拥有5种情况 -1 |(0)_1_(2)|  (3) 当中.0,1,2这三种情况是一样的. 确定每一个带插入区间的两个边界分 ...

  9. restframework-总结

    1. 规范 - 版本控制 - 部署专用的域名(防止跨域攻击) - 因为restframework又称为面向资源的编程所以url名词需要用专业的名词去表示 - 请求方式method - url上可以传递 ...

  10. Tomcat appears to still be running with PID 19564. Start aborted

    产生原因:tomcat 异常关闭, 或强行终止导致(如断电等....) 如你所见 .  tomcat 在linux  关, 关不了. 开开不了. 疯狂百度一个小时以后,大致产生问题的原因是,LINUX ...