一次人大金仓剔除锁经历
Posted 左直拳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次人大金仓剔除锁经历相关的知识,希望对你有一定的参考价值。
前几天有同事在群里问,怎么杀掉人大金仓的锁?因为伊在安装软件的时候遇到警告,提示有锁,无法继续。
这种问题,应该由DBA负责,但我们都是二把刀,甚至连二把刀都称不上,不是专业的DBA,况且人大金仓刚接触。不过就算oracle,遇到这种问题,也只能查资料或翻看以往的记录,不可能记住这些繁琐的命令。这次也是从网上搜来的语句,我试了一下,问题解决。
SELECT pid,usename,application_name
app,client_addr,xact_start,wait_event_type,wait_event,state,query
FROM sys_stat_activity
WHERE pid<>(SELECT sys_backend_pid())
AND datname='gistest' AND usename='sde';//数据库名和用户名
SELECT sys_terminate_backend(6120);//将觉得有问题的pid处理一下,居然是用select,有点令人惊讶
第一条语句查找指定数据库和用户的当前活动,最重要的是列出了pid。如果觉得有些活动有问题,就终结它(terminate)。终结者,terminator,阿诺猪华生力啤。
这些pid由2个数字组成,中间用逗号隔开。但sys_terminate_backend函数里,它们全部堆上去,并无逗号。比如这个6120,明明是"6,120"。
sys_stat_activity,是人大金仓里的一个动态统计视图,显示每个会话进程的当前活动信息,如进程PID、进程状态、查询语句、 开始时间等。
附录:
长事务的弊端
- 阻止垃圾回收,导致表和索引膨胀
- 频繁唤醒autovacuum进程,浪费I/O
查找长事务 - SELECT pid,state,query FROM sys_stat_activity WHERE state <> ‘idle’ AND now()-xact_start >
interval ‘300s’;
终止长事务、长连 - SELECT sys_terminate_backend(pid
)清理长事务
幸甚至哉,记它。
以上是关于一次人大金仓剔除锁经历的主要内容,如果未能解决你的问题,请参考以下文章