博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lock_sga引起的ksvcreate :process(m000) creation failed
阅读量:4682 次
发布时间:2019-06-09

本文共 2313 字,大约阅读时间需要 7 分钟。

早上接到同事电话说数据库连接超时.连到服务器上,查看alert日志,发现有如下的一些提示:

process m000 died

ksvcreate :process(m000) creation failed

数据库版本为10.2.0.4 运行在64位的linux上.在metalink上查找相关的资料很少.之后用sysdba连进去操作的时候,发现已经不能正常操作,在征得同意的情况下,决定重启数据库.正常的shutdown immediate无法关闭,只有采用abort的方式(因为日志都在).在startup的时候报错:

ora-27102: out of memory linux-x86_64 error:12:cannot allocate memory

这个错误很眼熟了,回想了一下以前遇到过的,应该是lock_sga所引起的.在os上查看

[oracle@pmiscs ~]$ ulimit -a | grep memorymax locked memory       (kbytes, -l) 64max memory size         (kbytes, -m) unlimitedvirtual memory          (kbytes, -v) unlimited

发现locked memory有限制,暂时用 ulimit -l unlimited,然后startup数据库能正常打开

此时再去查看lock_sga参数,发现果然是lock_sga=true;

在metalink上,有很多介绍这个的,如[ID 401077.1],[ID 577898.1]等,造成的原因是:

SGA_MAX_TARGET and SGA_TARGET cannot be used when LOCK_SGA is enabled or with huge pages on Linux.

The LOCK_SGA parameter, when set to TRUE, locks the entire SGA into physical memory. Therefore, this parameter cannot be used in conjunction with Automatic Memory Management or Automatic Shared Memory Management.

The "ulimit -l" parameter is not set to allow the amount of memory (sga size) being requested to be locked.

解决方案有2种:一种是将lock_sga改为false;一种是禁用内存自动管理,采取手工管理的方式去设置:

alter system set SGA_TARGET=0 scope=spfile;You must then set values for the various SGA components manually :Database buffer cache (default pool) : DB_CACHE_SIZEShared pool : SHARED_POOL_SIZELarge pool : LARGE_POOL_SIZEJava pool : JAVA_POOL_SIZEStreams pool : STREAMS_POOL_SIZE

ps:查看sga里面的分配信息以及是否可以resize可以查看v$sgainfo这个视图:

SQL> select * from v$sgainfo;NAME                                  BYTES RES-------------------------------- ---------- ---Fixed SGA Size                      1266996 NoRedo Buffers                       15507456 NoBuffer Cache Size                 385875968 YesShared Pool Size                  637534208 YesLarge Pool Size                    33554432 YesJava Pool Size                     16777216 YesStreams Pool Size                         0 YesGranule Size                       16777216 NoMaximum SGA Size                 1090519040 NoStartup overhead in Shared Pool    67108864 NoFree SGA Memory Available                 011 rows selected.

而m000进程应该是awr的一个后台进程,估计是lock_sga锁定了内存之后,无法给m000这个分配内存了,所以报process(m000) creation failed.

 

转载于:https://www.cnblogs.com/nazeebodan/archive/2012/09/06/2673428.html

你可能感兴趣的文章
c# 模拟get请求例子,演示Session会话状态。
查看>>
[.net 面向对象程序设计深入](0) 开篇
查看>>
C 多线程学习
查看>>
#Sam有话说#一握在手,话说十年
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>
Spring事务
查看>>
java编程基础(三)流程控制语句
查看>>
让数据库跑的更快的7个MySQL优化建议
查看>>
jquery 取id模糊查询
查看>>
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>
修改node节点名称
查看>>
Java 文件下载
查看>>
图论——读书笔记 (深度优先搜索)
查看>>
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
不要过早追求通用
查看>>
带ifrmae的弹窗
查看>>
20172310 2017-2018《程序设计与数据结构》(下)第二周学习总结
查看>>
C#中webBrowser加载页面中的不同域的iFrame的源代码的取得
查看>>