
AIX-maxuproc参数案例
发布日期:2021-05-14 17:50:29
浏览次数:23
分类:精选文章
本文共 1187 字,大约阅读时间需要 3 分钟。
转自-----------http://blog.chinaunix.net/uid-14877370-id-2782044.html
AIX系统对资源的管理有一些特定的限制,比如进程的最大数量。这个参数叫做maxuproc,可以表示“单个用户允许的最大进程数”。如果一个用户试图创建超过这个参数值的进程,就会导致失败。
对于Oracle数据库来说,更为特殊。假设数据库处于私有模式(Exclusive Mode),那么每个客户端连接都需要在数据库服务器上创建一个独立的进程来处理。这意味着如果maxuproc这个参数设置得过低,就容易因进程数量限制而出现问题。
然而,maxuproc的默认值可能并不是非常高。例如,我们的一个实例中,发现maxuproc被设置为2000,这时候数据库就无法支持超过这个数量的进程。当晚,我们对一个Oracle数据库进行了数据迁移,将部分schema迁移到另一个数据库上。这次迁移是在晚上完成的,之后系统仍能正常运行。
第二天,我们接收到了报警,提示无法连接到数据库。检查Oracle的监听日志后,发现有以下错误信息:
- TNS-12500: TNS:listener failed to start a dedicated server process
- TNS-12540: TNS:internal limit restriction exceeded
- TNS-12560: TNS:protocol adapter error
- TNS-00510: Internal limit restriction exceeded
- IBM/AIX RISC System/6000 Error: 11: Resource temporarily unavailable
错误提示表明,连接过程中发生了资源限制被超过的问题。为了深入分析,我们检查了当前系统的进程数限制:
db_XXX:/home/oracle$ lsattr -El sys0 | grep maxuprocmaxuproc 2000 Maximum number of PROCESSES allowed per user True
结果显示,maxuproc被设置为2000。与此同时,我们发现当前系统中的Oracle进程数为1995个,接近但未超过限制。
但显然,前一天迁移后的系统耗能较高,导致进程数量超过限制。这时候,我们知道唯一的解决方法就是增加maxuproc的值。
执行以下命令来增大参数值:
chdev -l sys0 -a maxuproc='3000'
这种方式可以在相同设备中增加进程数的上限,从而解决连接问题。
经过调整后,系统能够正常运行。这个问题提醒我们,在进行数据库迁移或对数据库配置进行调整时,必须充分考虑资源限制和负载状况。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月24日 16时24分37秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python安装和配置(win10)
2019-03-12
光猫,路由器,机顶盒
2019-03-12
智力扣(13)——回字环
2019-03-12
重构函数(1)条件合并
2019-03-12
ACM总结——库函数(2)C标准库stdlib
2019-03-12
2020编码大赛(1)题目
2019-03-12
Brainfuck语言 未定义行为
2019-03-12
BitChanger语言
2019-03-12
Pythagorea(3)第16-21章
2019-03-12
纪念碑谷(1-5章)
2019-03-12
基数树(radix tree)
2019-03-12
放硬币问题的解空间结构
2019-03-12
58Q游戏(4)73(5)85(6)98(7)
2019-03-12
独立钻石棋详解
2019-03-12
106 多米诺骨牌(12)119(8)130(9)142(10)150(11)
2019-03-12
算两次计数法
2019-03-12
python正则表达式一:match、search和findall
2019-03-12
Source Insight崩溃的2种解决方法
2019-03-12
点亮细胞171-180
2019-03-12
C++ Primer Plus读书笔记:c++字符串
2019-03-12