免费注册 查看新帖 |

Chinaunix

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

[原创]数据库锁表的解决流程,请求加精 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-21 14:26 |只看该作者 |倒序浏览
1。找到被锁表的partnum:select  hex(partnum) from systables  where  tabname = ”tabalname”;

2。onstat -k|grep partnum 找到该锁的owner;

3。onstat -u | grep owner 找到用户会话session号;

4。onmode -z sesid 杀掉该session;

5。如果第4步失败,则进一步onstat -g ses | grep sesid 找到该发起该会话的pid;

6。kill pid 或 kill -9 pid;

7。特殊情况:在第2步中,如果发现锁的owner为0,则检查:
   
    onstat -x
    onstat -G
    看是否存在全局事务,若有全局事务,则继续以下步骤:

           select hex(tx_addr) trans_addr,hex(tx_lklist) lock_addr from systrans where hex(tx_addr) like '%c000000007674c58%';
           需要说明的是,c000000007674c58是使用onstat -x 或 onstat -G得到的全局事务的地址。
           上面SQL语句提供出该全局事务对应的锁地址,这时如果得到的锁地址与锁表的锁地址相同的话,你就必需从应用端(通常是三层结构的中间件)发命令让该全局事务回滚或提交,否则该锁会被一直持有,直到你执行oninit -i。

论坛徽章:
0
2 [报告]
发表于 2007-05-25 15:28 |只看该作者
不会吧,要执行oninit -i 整个实例都被初始化了,没有备份的话,就等着哭吧,

论坛徽章:
0
3 [报告]
发表于 2007-05-26 23:09 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2007-05-27 09:48 |只看该作者
最后一句慎行之。。。

论坛徽章:
0
5 [报告]
发表于 2007-06-14 10:22 |只看该作者
请求加精

查锁
select
        dbsname,
        b.tabname,
        rowidr,
        keynum,
        e.txt           type,
        d.sid           owner,
        g.username      ownername,
        f.sid           waiter,
        h.username      waitname
from
        syslcktab       a,
        systabnames     b,
        systxptab       c,
        sysrstcb        d,
        sysscblst       g,
        flags_text      e,
        outer ( sysrstcb f , sysscblst h  )
where
                b.dbsname <> "sysmaster"
        and     a.partnum = b.partnum
        and     a.owner   = c.address
        and     c.owner   = d.address
        and     a.wtlist  = f.address
        and     d.sid     = g.sid
        and     e.tabname = 'syslcktab'
        and     e.flags   = a.type
        and     f.sid     = h.sid
        and     b.tabname='xxxxx'   (如不加这句 查所有锁)

onmode -z sessid
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP