postgresql 死锁问题解决记录

--查询阻塞的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)=‘FX_WDSJ_DSZH‘
) 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)
时间: 2024-11-21 04:31:57

postgresql 死锁问题解决记录的相关文章

postgresql死锁处理

postgresql 死锁处理 缘起 遇到一个奇怪的现象,select和delete表时正常执行,但truncate和drop表时会一直运行,也不报错. 原因 "drop table " 和 "truncate table " 需要申请排它锁 "ACCESS EXCLUSIVE ", 执行这个命令卡住时,说明此时这张表上还有操作正在进行,比如查询等,那么只有等待这个查询操作完成,"drop table" 或"trun

Centos6安装FreeSWITCH 1.5时./configure问题解决记录

系统:Centos 6.4 64位: FreeSWITCH版本:1.5 具体的安装过程参考FreeSWITCH 官网wiki (也可以参考我的博客<Centos6安装FreeSWITCH>) 从FreeSWITCH 安装过程./configure 时遇到sqlite 的问题开始: checking for sqlite3 >= 3.6.20… Package sqlite3 was not found in the pkg-config search path. Perhaps you

Python常见问题解决记录1-Non-ASCII character &#39;\xe7&#39;错误

1.编译运行出现错误:SyntaxError: Non-ASCII character '\xe7' in file .. , but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 问题原因:Python在默认状态下不支持源文件中的编码所致 解决办法:按照错误建议网址查看http://www.python.org/peps/pep-0263.html 1.文件头部添加如下注释码: # codi

一次rabbitmq故障问题解决记录

1. 一次rabbitmq故障问题解决记录   测试环境的rabbitmq集群,因为虚拟化平台故障,导致三台rabbitmq集群节点全部关机.修复虚拟化平台的故障,启动3台rabbitmq集群节点.故障如下:   1. rabbitmq磁盘节点正常:   2. rabbitmq两个内存节点无法启动:报错大体如下: [[email protected] [email protected]]# service rabbitmq-server start Starting rabbitmq-serve

u-boot从nand 启动时的问题解决记录

u-boot从nand 启动时的问题解决记录 问题描述: 使用u-boot-1.1.6版本u-boot移植到JZ2440开发板上,当前已经能够从Nor启动,但是不能从Nand正常启动(u-boot大小为95.8k,已经超过的2440从Nand启动时所能拷贝的4k大小),当前代码中只具备从Nor启动时,重定位代码到SDRam的功能,所以需要添加从Nand启动时将u-boot代码重定位到SDRam中,之后跳到SDRam中运行: 针对上述需求中Nand操作部分增加代码如下: /* s3c2440中na

eclipse连接mysql问题解决记录

问题的提出: 我在先前成功更改了电脑的jdk版本,而最后burpsuit专业版还是石沉大海.之后由于上java web课程,我再次操刀暑期正常运行java web的eclipse,但是没想到被eclipse教做人了.下面我将解决过程中的收获分享如下. 问题的解决: 有人问我为什么不用idea,我只想说之前看的书用的是eclipse,而且一想到框架的配置如此复杂,就不想去看idea了(太菜了).由于最近也比较忙,问题解决花了两天,有些报错和解决可能对应不上,所以有几点直接说了. 1.注意java

关于Nginx配置Https server后,乱跳的问题解决记录

大部分的服务器上,我们会在一个Nginx服务下配置多个vhost,以最大化运用服务器资源.然而,为其中一个vhost域名启用 HTTPS 之后,发现百度统计的实时访客或入口页中,存在一些来自其它域名的请求.即通过 https://some-other-domain.com/some-url 来访问对应的 https://www.domain.com/some-url 结果就是 Google 浏览器显示了一个安全警告页面,认为这是一个不安全的网页.因为我只配置了 www.domain.com 的

[转][工地][存]Oracle触发器死锁问题解决

摘自http://blog.itpub.net/12932950/viewspace-607691/ 这两天一直在因为系统初期设计原因导致的一个触发器问题.问题如下:有表T,有客户编号.账户编号及地址三个字段(为方便起见以最少字段描述).一个客户编号下可能存在多个账户编号(3个或4个).假设客户编号C0下有A1.A2.A3三个账户编号.        现在对账户编号A1的地址字段进行了更新,要求通过触发器同时更新客户编号C0下的另外两个账户A2和A3的地址字段.通过实际的触发,发现存在着一个非常

Postgresql死锁的处理

今天遇到一个奇怪的现象,select和delete表时正常执行,但truncate和drop表时会一直运行,也不报错. 查了些资料才发现问题的原因,总结如下: "drop table " 和 "truncate table " 需要申请排它锁 "ACCESS EXCLUSIVE ", 执行这个命令卡住时,说明此时这张表上还有操作正在进行,比如查询等, 那么只有等待这个查询操作完成,"drop table" 或"tru