免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5985 | 回复: 9
打印 上一主题 下一主题

informix锁表问题,急!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-07 14:57 |只看该作者 |倒序浏览
用onstat -k看这些地址一直锁着,但是看不到owner,onstat -u中也就找不到对应的session了,进syslocktab中看到的信息如下:
address  0x07000000114ccfe8
owner    0x0700000253897048
lklist   0x07000000114cf658
rowid    0x002CCD04
tblsnum  0x00400A54
请问如何找到问题所在--锁一直不放开,还有现在这种情况下该如何处理呢?谢过!

[informix]◆onstat -x |head -5 ;onstat -x|grep G
IBM Informix Dynamic Server Version 9.40.FC5     -- On-Line -- Up 114 days 23:01:23 -- 9815776 Kbytes
Transactions
address          flags userthread       locks  beginlg curlog  logposit   isol    retrys coord
7000002509a1aa0  ----G 0                0      0       0       0x0        COMMIT  0      
7000002509a5e00  ----G 0                0      0       0       0x0        COMMIT  0      
7000002509a6c70  ----G 0                1      0       0       0x0        COMMIT  0      
7000002509aa3c8  ----G 0                1      0       0       0x0        COMMIT  0      
7000002509adff0  ----G 0                1      0       0       0x0        COMMIT  0      
7000002509b1010  ----G 0                0      0       0       0x0        COMMIT  0      
700000253894028  ----G 0                1      0       0       0x0        COMMIT  0      
7000002538949c8  ----G 0                1      0       0       0x0        COMMIT  0      
700000253897048  --B-G 0                7      1623    1623    0x8b30148  DIRTY   0      
7000002538972b0  ----G 0                1      0       0       0x0        COMMIT  0      
7000002538a2e60  ----G 0                1      0       0       0x0        COMMIT  0      
7000002538a54e0  ----G 0                1      0       0       0x0        COMMIT  0      
7000002578f6c30  ----G 0                2      0       0       0x0        COMMIT  0      
7000002578f7838  ----G 0                1      0       0       0x0        COMMIT  0      
[informix]◆onstat -k |head -5 ;onstat -k |grep X
IBM Informix Dynamic Server Version 9.40.FC5     -- On-Line -- Up 114 days 23:02:55 -- 9815776 Kbytes
Locks
address          wtlist           owner            lklist           type     tblsnum  rowid    key#/bsiz
7000000114ccfe8  0                0                7000000114cf658  HDR+X    400a54   2ccd04   K- 1   
7000000114cf658  0                0                70000001f65a438  HDR+X    40064e   2ccd04   K- 1   
70000001f65a438  0                0                70000003bfe2b38  HDR+X    40064d   2ccd04      0   
70000001f6a8048  0                0                70000001f6a7fd0      IX   4005b4   0           0   
70000001f6a80c0  0                0                7000000114ccfe8  HDR+X    4005b4   164bd01     0   
70000003bfe2b38  0                0                70000001f6a8048      IX   40064d   0           0   
700000042f404f8  0                0                70000002298c310      IX   300001   0           0

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2008-10-07 15:19 |只看该作者
通过onstat -k 的tblsnum 找一下是哪个表被锁了....再通过表找session.

BTW:建议对这个表先做次update statistics .

[ 本帖最后由 liaosnet 于 2008-10-7 15:20 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-10-07 15:44 |只看该作者

回复 #2 liaosnet 的帖子

update statistics每天都做呢,
如何通过表找session呢?
顺便问一下,我如果直接用onmode -Z 0x0700000253897048可以吗?-Z有什么限制吗?多谢

[ 本帖最后由 zenyusun 于 2008-10-7 15:47 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-10-07 15:51 |只看该作者
isql -s sysmaster<<!
select first 10 dbsname,tabname,count(*) from syslocks where type like "%X%" group by 1,2
!
查出哪个表被锁了


isql -s sysmaster<<!
select owner,count(*) from syslocks where tabname="表名“ group by 1
!
查出SID

论坛徽章:
0
5 [报告]
发表于 2008-10-07 16:39 |只看该作者

回复 #4 我是DBA 的帖子

他们的owner是0,我试过了,用您的方法同样也不能查到SID。不知是不是中间件tuxedo的问题,那儿不能提交或回滚。
onmode -Z也不行
[informix]◆onmode -Z 0x700000253897048
onmode: Cannot kill transaction 0x700000253897048.
Only I-STAR subordinates that are PREPARE'd or HEURISTICally ABORT'd
may be heuristically completed.

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
6 [报告]
发表于 2008-10-07 16:53 |只看该作者
tblsnum  400a54

通过onstat -g opn中的partnum来获取rstcp,通过rstcp(去掉0x前缀)的onstat -u获取sessid

论坛徽章:
0
7 [报告]
发表于 2008-10-07 17:03 |只看该作者
重启数据库

论坛徽章:
0
8 [报告]
发表于 2008-10-07 17:21 |只看该作者
原帖由 liaosnet 于 2008-10-7 16:53 发表
tblsnum  400a54

通过onstat -g opn中的partnum来获取rstcp,通过rstcp(去掉0x前缀)的onstat -u获取sessid


这个也同样不行,找不到400a54等几个partnum,谢过,还有其它方法结束掉这几个锁吗?

论坛徽章:
0
9 [报告]
发表于 2008-10-07 17:23 |只看该作者
原帖由 我是DBA 于 2008-10-7 17:03 发表
重启数据库


难道就只有重启数据库了吗?中间件层面上能够把此事务回滚或者提交吗?用的tuxedo?多谢!

论坛徽章:
0
10 [报告]
发表于 2008-10-08 12:07 |只看该作者

回复 #1 zenyusun 的帖子

没办法,最终结果是重启了数据库。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP