informix报错244_Informix查看死锁和解锁 | 学步园

本文介绍了Informix数据库出现244错误的原因和处理死锁的方法,包括通过onstat命令查找和结束锁表进程,设置锁模式以及解决全局事务锁问题。同时提供了调整锁级别、减少事务时间跨度和设置等待解锁时间的建议。
摘要由CSDN通过智能技术生成

Informix杀掉死锁的方法和查看死锁的sql语句(转)作者:星星博客园  来源:博客园  发布时间:2011-01-21 10:01  阅读:60 次  原文链接   [收藏]

Informix锁表产生的原因,要么是多个用户同时访问数据库导致该问题,要么是因为某个进程死了以后资源未释放导致的。如果是前一种情况,可以考虑将 数据库表的锁级别改为行锁,来减少撞锁的机会;或在应用程序中,用set lock mode wait 3这样的语句,在撞锁后等待若干秒重试。如果是后一种情况,可以在数据库端用onstat -g ses/onstat -g sql/onstat -k等命令找出锁表的进程,用onmode -z命令结束进程;如果不行,就需要重新启动数据库来释放资源。

1:$ onstat -k | grep HDR+X

获得sessid,其中HDR+X 为排他锁,HDR 头,X 互斥 ,sessid 是会话标识符编号。

2:$ onstat -g ses sessid

根据sessid得到进程pid,其中pid 是与此会话的前端关联的进程标识。

(可通过$ onstat -g sql sessid 命令查看执行的sql语句)

3:$ ps -ef |grep pid

由此,我们可得到锁表的进程,可根据实际锁表进程的重要程度的具体情况采取相映处理方法:

对于重要且该进程可以自动重联数据库的进程,可以用onmode -z sesid 的方法杀掉锁表session:

$ onmode –z sessid

否则也

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值