今天遇到一个奇怪的现象,select和delete表时正常执行,但truncate和drop表时会一直运行,也不报错。

查了些资料才发现问题的原因,总结如下:

"drop table " 和 "truncate table " 需要申请排它锁 "ACCESS EXCLUSIVE ", 执行这个命令卡住时,说明此时这张表上还有操作正在进行,比如查询等,
那么只有等待这个查询操作完成,"drop table" 或"truncate table"或者增加字段的SQL 才能获取这张表上的 "ACCESS EXCLUSIVE" 锁 ,操作才能进行下去。

1.检索出死锁进程的ID。

SELECT * FROM pg_stat_activity WHERE datname='死锁的数据库ID ';

检索出来的字段中,【wating 】字段,数据为t的那条,就是死锁的进程。找到对应的【procpid 】列的值。

2.将进程杀掉。

SELECT pg_cancel_backend('死锁那条数据的procpid值 ');

结果:运行完后,再次更新这个表,sql顺利执行。

如果pg_stat_activity 没有记录,则查询pg_locks是否有这个对象的锁

select oid,relname from pg_class where relname='table name';

select locktype,pid,relation,mode,granted,* from pg_locks where relation= '上面查询出来的oid';

select pg_cancel_backend('进程ID');

另外pg_terminate_backend()函数也可以杀掉进程。

Postgresql死锁的处理的更多相关文章

  1. Postgresql死锁处理

    今天遇到Postgresql的一个问题,部分表记录的update一直无效报错,初步判断为锁表,赶紧进行解决. 1. 查询死锁进程列表 select * from pg_stat_activity wh ...

  2. postgresql 死锁处理

    缘起 遇到一个奇怪的现象,select和delete表时正常执行,但truncate和drop表时会一直运行,也不报错. 原因 "drop table " 和 "trun ...

  3. Greenplum集群或者Postgresql出现死锁肿么办?

    1.Greenplum集群或者Postgresql出现死锁肿么办? 由于Postgresql和Greenplum集群这数据库知识很深的,没有仔细研究,遇到问题真的不知道肿么处理,我遇到死锁,是采取了暴 ...

  4. PostgreSQL杀掉死锁的链接

    查到对应的用户的活动连接: select * from pg_stat_activity where username="xxx"; 杀掉死锁的连接: select pg_term ...

  5. PostgreSQL 9.3发布

    9月9日,PostgreSQL全球开发组宣布了9.3版发布的消息.从2010年9.0版开始,PostgreSQL已经连续四个版本稳定地按时在每年9月中旬发布,从一个侧面也显示了开发团队的强大实力. 9 ...

  6. postgresql运维

    0. 帮助 $/home/lhl/az/pg/bin/pg_ctl --help pg_ctl is a utility to initialize, start, stop, or control ...

  7. greenplum在执行vacuum和insert产生死锁问题定位及解决方案

    首先声明:未经本人同意,请勿转载,谢谢! 本人使用自己编译的开源版本的greenplum数据库用于学习,版本为PostgreSQL 8.3.23 (Greenplum Database 4.3.99. ...

  8. POSTGRESQL 并发控制

    http://meidayhxp.blog.163.com/blog/static/117608156201210243837491/ 这个内容是官方Doc中的一章,具体是那一版的,还未确认. 第九章 ...

  9. Postgresql 查看锁的过程

    一.查看sql语句是否发生死锁 1.查看数据库的进程.SELECT * FROM pg_stat_activity WHERE datname='死锁的数据库ID ';检索出来的字段中,[wating ...

随机推荐

  1. DB First 中对Repository 层封装的几点小记

    在数据库表创建完成的情况下,使用DB First 进行开发,封装底层会遇到一些小问题,在此记录一下,供以后参考. 主要解决的问题有: 1.EF上下文管理 2.BaseRepository的封装 3.E ...

  2. 【LOJ】#2174. 「FJOI2016」神秘数

    题解 这道题的结论很显然= = 就是暴力求的话,把一个区间的数排一下序,如果当前这个数大于前面所有数的前缀和+1,那么前缀和+1即我们所求的答案 那么我们设置一个当前答案(初始为1),在主席树上求出来 ...

  3. bzoj 1483 链表 + 启发式合并

    思路:将颜色相同的建成一个链表, 变颜色的时候进行链表的启发式合并.. 因为需要将小的接到大的上边,所以要用个f数组. #include<bits/stdc++.h> #define LL ...

  4. ubuntu怎么连接centos远程桌面

    1.系统软件设置CentOS端:查看是否安装了vnc软件# rpm -q vnc vnc-serverpackage vnc is not installedvnc-server-4.1.2-14.e ...

  5. ubuntu调错

    最近运行一个程序,出现错误 ’event.h‘,猜想是缺少event lib 库 于是安装sudo apt-get install libevent-dev 即可.

  6. Android之 ListView(1)

    ListView是Android中最常用的控件之一. 当有太多数据需要显示的时候,ListView就派上用场了.它允许用户通过滑动手指的方式,将数据滑入滑出界面. 一.最简单的ListView实现 1 ...

  7. 【数学】At Coder 091 D题

    [深夜题解] 题目链接:https://arc091.contest.atcoder.jp/tasks/arc091_b 题目大意:给出两个正整数N.K,找出所有的不大于N的正整数对(a,b)使b%a ...

  8. struts2的action编写

    例 HelloWorld.jsp <% @ page contentType = "text/html; charset=UTF-8 " %> <% @ tagl ...

  9. 【BZOJ 4148】 4148: [AMPPZ2014]Pillars (乱搞)

    4148: [AMPPZ2014]Pillars Time Limit: 5 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 100  Solve ...

  10. Week Three

    2018.12.10 1.[BZOJ 4818][P 3702] 2.[AGC007 A] 3.[AGC007 B] 4.[AGC007 C] 5.[AGC007 D] 2018.12.11 1.[B ...