[DB2]错误"Requesting too many semaphores" 解决办法

1 篇文章 0 订阅

登录数据库时报错:"Requesting too many semaphores"


1. 首先清除db2diag.log,然后重新登录重现问题。

2. ipcs -l 检查semaphores的大小限制

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 67108864
max total shared memory (kbytes) = 17179869184
min seg size (bytes) = 1


------ Semaphore Limits --------
max number of arrays = 4096
max semaphores per array = 250
max semaphores system wide = 256000
max ops per semop call = 100
semaphore max value = 32767


------ Messages: Limits --------
max queues system wide = 31905
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536


3. 然后ipcs -s检查共享内存数量,这个问题的原因是因为实际数量超过了限制

结论:
每次instance重新启动前一定要*释放资源*!
包括
db2_kill
ipclean
ps -ef|grep -i db2
kill all processes left

Ps:最后发现原因是因为在备份数据库的时候,重启了服务器上的数据库,但是不知道什么原因Semaphore 变得异常增大,这时不要着急使用ipcrm终止数据库的相关共享进程,这样会导致数据丢失(我着急操作数据库,删除了部分共享内存导致一些数据丢失),应该首先试着试着重启数据库,看能不能解决问题。


转自:http://www.itpub.net/thread-531368-1-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值