Informix如何释放异常的锁资源

摘要:
问题在Informix数据库中,锁的使用和释放是自动完成的。第二步,查找上锁的用户线索运行IDS锁的监控命令onstat-k,确定对该表上锁的用户线索,如下所示:$onstat-kIBMInformixDynamicServerVersion9.40.FC6--On-Line--Up18:13:12--38912KbytesLocksaddress wtlistowner lklisttypetblsnumrowidkey#/bsiz10a13a5900  10afd30c80  HDR+S100002207 0在输出中,查找tblsnum为第一步找到的表号的行,每行代表一个锁资源的情况,并找到相应的owner,即使用这个锁的用户线索号。

问题

在Informix数据库中,锁的使用和释放是自动完成的。但在某些异常情况下,当前台程序退出(正常或异常)后,相应在数据库中的会话没有终止,其占有的资源(主要是锁)没有被释放,影响了其他用户的使用。

这种情况可能出现在用户表或系统表中,一般都是由于产品的BUG或非常极端的情况引起的。

这时需要用手工的方式将有问题的会话终止,以释放其占有的资源,当然重新启动数据库自然就释放了所有的资源了,但有时业务上暂时不允许重新启动。

第一步,确定被锁住的资源

一般在遇到这种情况时,很容易确定被锁住的资源,如果是用户表,则一般会在操作这张表时报错,而如果是系统表,也会直接报告是哪张表,如:

211: Cannot read system catalog (sysprocplan).
144: ISAM error: key value locked

在以上的信息中,关于存储过程的系统表sysprocplan被锁住了。

在确定了相关表名后,需要查询出其在内部的表号,以便后续的处理,如下所示:

dbaccess <该表所在的数据库>
select hex(partnum) from systables where tabname="<表名>"

执行返回的是一个16进制表示的数,这是该表在IDS内部的标识。

第二步,查找上锁的用户线索

运行IDS锁的监控命令onstat -k,确定对该表上锁的用户线索,如下所示:

$ onstat -k
IBM Informix Dynamic Server Version 9.40.FC6 -- On-Line -- Up 18:13:12 -- 38912 Kbytes
Locks
address  wtlistowner lklist typetblsnumrowid key#/bsiz
10a13a590 0   10afd30c80   HDR+S100002207  0

在输出中,查找tblsnum为第一步找到的表号的行,每行代表一个锁资源的情况,并找到相应的owner,即使用这个锁的用户线索号。

第三表,查找用户线索对应的会话

通过用户线索监控命令onstat -u进一步查找相应的会话以及用户情况。如下所示:

$ onstat -uIBM Informix Dynamic Server Version 9.40.FC6 -- On-Line -- Up 18:20:47 -- 38912 KbytesUserthreads
addressflagssessiduser tty wait tout locks nreads nwrites
10afd1028 ---P--D  1    informix - 0 0 0 28 7
10afd1850 ---P--F  0    informix - 0 0 0 0 0
10afd2078 ---P---  5    informix - 0 0 0 0 0
10afd28a0 ---P--B  6    informix - 0 0 0 0 0
10afd30c8Y--P---17  informix 4 10b1f9548 0 1 157 0
10afd4118 ---P--D  9    informix - 0 0 0 0 0
10afd4940 Y--P--D  13   informix - 10a125f10 0 0 0 0

其中第一列为线索号,相对应的第三列为拥有该线索的会话号。

第四步,分析原因并采取措施

有了会话号之后,就可以进一步分析原因或采取相应的措施了,如:

onstat -g ses <会话号>,分析会话的状态

onstat -g sql <会话号>,查看会话的SQL情况

注意,如果在会话的database一项中出现的是“-”,说明该会话所对应的客户端程序已经退出,但数据库中的会话并未终止,

或通过onmode -z <会话号>直接终止该会话,其所占有的锁资源将全部释放。

管理建议

    • 请关注异常锁的情况,如果频繁出现,应该是产

http://www.ithao123.cn/content-7724355.html

免责声明:文章转载自《Informix如何释放异常的锁资源》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇flume 使用手册01:查找特定的值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

华为 HG526 破解实录(一)Cfg文件加解密工具

几天前,我去中国电信安装E169软件包,并发送了一个华为HG526无线路由猫和一个中兴xxx网络机顶盒(尚未开始制造麻烦)。当然,无线路由猫一如既往地被阉割了。搜索之后,我开始了我的快攻之旅。1.打开catdrop管理页面,使用telecomadmin和nE7jA%5m登录;2.将U盘插入猫。3.开放式管理=˃设备管理、备份配置。4.打开U盘,放下ctce8...

JRebel 6 破解版及使用方法

2.解压下载的jrebel6.0.0-crack.zip、jrebel6.0 jar包和破解文件。假设文件在D:/jrebel步骤:1中解压缩。eclipse下载jrebe插件,可以在市场上下载。2.打开eclipse的窗口首选项jrebel,打开优势选项卡,并将jar包的路径指向D:/jrebel/jrebel.jar。用CMD打开DOS窗口,输入cd/d...

kafka命令

启动kafka:./kafka-server-start.sh../config/server.properties&查看topic./kafka-topics.sh--zookeeper192.168.8.56:2181,192.168.8.70:2181,192.168.8.147:2181--describe--topicliuhangjun....

Grafana 安装配置启动

多个数据源:Graphite、InfluxDB、OpenTSDB、Prometheus、Elasticsearch、CloudWatch、KairosDB、Zabbix等。通知和提醒,达到目标设置的阈值,并发出警报。grafana具有以下三个用户权限管理员:超级管理员,具有所有权限查看器:只能查看DashBoardEditer:无法创建用户,无法添加数据源,...

戴尔服务器R740-iDRAC管理卡远程安装系统

Dell服务器R740 iDRAC管理卡安装系统1.方案部署:1.服务器配置名称配置备注CPU 2核心内存128GSwap=128G硬盘2T*8RAID5=12T II。设置iDRAC管理卡地址和连接:iDRAC功能默认关闭,需要在BIOS中启用。由于这是一项测试,默认情况下使用浏览器(Google浏览器)访问iDRAC管理地址,Calvin可以在此处设置新...

oracle报ORA-08103: 对象不再存在错误

今天,在导入数据时,数据库多次抛出异常。最常见的原因是同时操作。有人截断了表,然后将其放入选择表中。在群里发布错误,有人立刻出来认出他,说他正在整理表格……如果不是因为这个原因,百度也给出了其他尝试的计划:再次执行;查询时添加架构。...