Postgresql 查看锁的过程
一、查看sql语句是否发生死锁
1.查看数据库的进程。SELECT * FROM pg_stat_activity WHERE datname='死锁的数据库ID ';
检索出来的字段中,【wating 】字段,数据为t的那条,就是死锁的进程,找到对应的【procpid 】列的值。
例如:SELECT procpid FROM pg_stat_activity WHERE datname='数据库ID' and waiting ='t';
2.杀掉进程。
kill有两种方式,第一种是:
SELECT pg_cancel_backend(PID);
这种方式只能kill select查询,对update、delete 及DML不生效)
第二种是:
SELECT pg_terminate_backend(PID);
这种可以kill掉各种操作(select、update、delete、drop等)操作
具体查询语句:
--查询阻塞的sql( 死锁了,没有执行通过的sql )
select * from pg_stat_activity aa,
(
select a.locktype,a.database,a.pid,a.mode,a.relation,b.relname from pg_locks a join pg_class b on a.relation=b.oid
where upper(b.relname)='xxx'
) bb
where aa.pid=bb.pid
and aa.waiting='t' --释放 死锁的sql
select pg_cancel_backend(上面查询到的pid)
--查询是否锁表了
select oid from pg_class where relname='可能锁表了的表' --oid是每个表隐藏的id
select pid from pg_locks where relation='上面查出的oid'
--如果查询到了结果 则释放锁定
select pg_cancel_backend(上面查到的pid)
测试PostgreSQL行级锁
Reference:
[1] https://blog.csdn.net/liuxiumeitanjie/article/details/38816871
[2] https://blog.csdn.net/czp11210/article/details/51320700
[3] https://blog.csdn.net/liyazhen2011/article/details/83379225
Postgresql 查看锁的过程的更多相关文章
- 并发编程:synchronized 锁升级过程的验证
关于synchronized关键字以及偏向锁.轻量级锁.重量级锁的介绍广大网友已经给出了太多文章和例子,这里就不再重复了,也可点击链接来回顾一下.在这里来实战操作一把,验证JVM是怎么一步一步 ...
- Postgresql 解决锁表
转载地址:https://blog.csdn.net/cicon/article/details/68068462##一.postgresql解决锁表--查询是否锁表了select oid from ...
- sqlserver检测死锁;杀死锁和进程;查看锁信息
http://blog.sina.com.cn/s/blog_9dcdd2020101nf4v.html sqlserver检测死锁;杀死锁和进程;查看锁信息 ( ::)转载▼ 标签: sql 检测死 ...
- Oracle查看锁表
查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, a ...
- sqlserver锁表、解锁、查看锁表
sqlserver锁表.解锁.查看锁表 http://www.cnblogs.com/zfanlong1314/p/3698566.html http://www.cnblogs.com/chjf20 ...
- oracle查看锁表进程,杀掉锁表进程[转载]
select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, ...
- sql server数据库查看锁表和解锁
--查看锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys ...
- Oracle 查看锁表进程_杀掉锁表进程 [转]
查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo ...
- Oracle 查看锁情况
/*查看锁(lock)情况*/ SELECT ls.osuser os_user_name, ls.username user_name, decode(ls.type, 'RW', 'Row wai ...
随机推荐
- 【LCA】求和VII @北京OI2018
目录 求和VII PROBLEM 题目描述 输入 输出 样例输入 样例输出 提示 SOLUTION CODE 求和VII PROBLEM 时间限制: 2 Sec 内存限制: 256 MB 题目描述 m ...
- SpringMVC中使用JSON
前台发送: 传递JSON对象 function requestJson(){ $.ajax.({ type : "post", url : "${pageContext. ...
- js object template
//== Class Definition var Test = function() { var login = $('#m_login'); //== Private Functions var ...
- 尝试IRC & freenode
古老的 IRC,一直都没有试过,今天就尝试了一下,专注于聊天的东西啊. 把初用的过程记录下来 先找了一下客户端,命令行版本的我试了一下 weechat(和微信就差一个字母),图形的用了 TimeCha ...
- Effective Java 第三版——64. 通过对象的接口引用对象
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- 模拟真实点击click,专门对付clickoutside
var evmousedown = document.createEvent('HTMLEvents'); // evmousedown.clientX = 88 // evmousedown.cli ...
- ownCloud安卓android客户端版本2.9.3
2018年11月26日 版本升级:ownCloud 2.9.3. 下载地址 2018年7月28日 版本升级:ownCloud 2.8.0,支持指纹.图案登录APP. 2018年2月6日 版本升级:ow ...
- Airtest iOS测试环境部署
[本文出自天外归云的博客园] 简介 这个Airtest IDE是通过iOS-Tagent来操作iPhone的,你可以在Airtest IDE里录制脚本来实现自动化操作iPhone 前提 1. 得有个i ...
- stm32f0 学习
http://blog.csdn.net/mrlixirong/article/category/5842873
- sfc /scannow命令如何能用虚拟光驱完成修复?(xp下的办法)
我们先光盘文件或用WinRAR压缩软件将ISO文件解压缩到本地磁盘某目录下,如e:\winxp: 在ISO文件上右击,在弹出的菜单中选择“解压到”: 文件较多,久等一会解压完成后文件夹下有很多 ...