PG 数据库锁表问题

转载文章,若有侵权还请联系

PG 数据库锁表问题解决方案:查询pg数据库锁表的语句和进程,通过进程pid杀掉进程进行批量表解锁_pg锁表解决办法_Fly&L的博客-CSDN博客

查询锁表语句和 pid:

select pid, query from pg_stat_activity where datname=‘数据库名’ and wait_event_type = ‘Lock’;

可以看到那些执行 sql 语句的进程被锁了,卡住了。
PG 数据库锁表问题_第1张图片

批量删除锁进程

1、select pg_cancel_backend( ‘进程pid’);该语句可以把锁住的进程杀掉。

2、通过 sql 语句拼装可以方便的把所有进程号封装起来,进而进行批量解
select ‘select pg_cancel_backend( ‘’’|| pid ||‘’‘);’ pid from pg_stat_activity where datname=‘auto_2012_oracle_yz1’ and wait_event_type = ‘Lock’;
PG 数据库锁表问题_第2张图片
查询后的结果复制下来可以直接执行。

可以达到批量解锁表的功能。
PG 数据库锁表问题_第3张图片

你可能感兴趣的:(#,pg,数据库)