Chinaunix首页 | 论坛 | 博客
  • 博客访问: 254866
  • 博文数量: 59
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 698
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-19 21:17
文章分类

全部博文(59)

文章存档

2009年(14)

2008年(45)

我的朋友

分类:

2008-12-30 22:56:41

AIX对很多资源都是有限制的,例如用户能创建的最大进程数限制,用参数maxuproc表示,
如果用户想创建超过maxuproc参数的进程,此时就会创建失败。对于oracle数据库,如果
处于独占模式,那么每一个客户端的连接都会在数据库服务器上创建一个进程,为其服务。
如果此参数maxuproc值过小,很容易达到此限制,应用报错。
大家可以通过如下的命令查看当前系统中设置的maxuproc参数大小,此参数的含义为:单个用户允许的最大进程数。
db_XXX:/home/oracle>$lsattr -El sys0|grep maxuproc
maxuproc        5000               Maximum number of PROCESSES allowed per user      True
前不久,我们根据业务的垂直性把一个在AIX上面的oracle数据进行了切分,将其中几个schema迁移到另外一个数据库上。
当时数据迁移是放到晚上进行的。当晚迁移完成后,各项业务正常。
第二天,接到报警,无法连接到数据库。查看ORACLE数据库的监听日志,发现有如下的信息:
23-AUG-2008 10:03:08 * (connect_data=(service_name=tax)(server=dedicated)(CID=(PROGRAM=oracle)(HOST=tax595)(USER=admin))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.168.21)(PORT=53566)) * establish * misc * 12500
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 maxuproc
maxuproc        2000               Maximum number of PROCESSES allowed per user      True
查看当前ORACLE的进程数
ps -ef|grep oracle|wc -l
发现此值为1995
至此发现问题,执行以下修改此参数的命令:
chdev -l sys0 -a maxuproc='3000'
问题解决。
阅读(3037) | 评论(1) | 转发(0) |
0

上一篇:北京出差

下一篇:潜在的性能问题

给主人留下些什么吧!~~

chinaunix网友2009-07-10 17:26:43

和我碰到的问题一样一样的