日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

postgresql解決鎖表

作者:風(fēng)飄絮ll執(zhí)子之手逍遙 更新時(shí)間: 2022-02-10 編程語言

一.

--查詢是否鎖表了
select oid from pg_class where relname='可能鎖表了的表'
select pid from pg_locks where relation='上面查出的oid'
--如果查詢到了結(jié)果,表示該表被鎖 則需要釋放鎖定
select pg_cancel_backend(上面查到的pid)
?

二.

1.查看數(shù)據(jù)庫(kù)的進(jìn)程。SELECT * FROM pg_stat_activity WHERE datname='死鎖的數(shù)據(jù)庫(kù)ID ';
檢索出來的字段中,【wating 】字段,數(shù)據(jù)為t的那條,就是死鎖的進(jìn)程,找到對(duì)應(yīng)的【procpid 】列的值。

例如:SELECT??procpid??FROM pg_stat_activity WHERE datname='數(shù)據(jù)庫(kù)ID' and waiting ='t';

2.殺掉進(jìn)程。

kill有兩種方式,第一種是:
SELECT pg_cancel_backend(PID);
這種方式只能kill select查詢,對(duì)update、delete 及DML不生效)

第二種是:
SELECT pg_terminate_backend(PID);
這種可以kill掉各種操作(select、update、delete、drop等)操作
?

?

原文鏈接:https://blog.csdn.net/zhengyong6/article/details/104649973

欄目分類
最近更新