主頁 > 知識庫 > 基于postgresql數(shù)據(jù)庫鎖表問題的解決

基于postgresql數(shù)據(jù)庫鎖表問題的解決

熱門標(biāo)簽:百度競價排名 AI電銷 服務(wù)外包 網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站 呼叫中心市場需求 鐵路電話系統(tǒng) Linux服務(wù)器

查詢是否鎖表了

select oid from pg_class where relname='可能鎖表了的表'
select pid from pg_locks where relation='上面查出的oid'

如果查詢到了結(jié)果,表示該表被鎖 則需要釋放鎖定

select pg_cancel_backend(上面查到的pid)

補(bǔ)充:PostgreSQL 解決鎖表、死鎖問題

1.-- 查詢ACTIVITY的狀態(tài)等信息

SELECT T
 .PID,
 T.STATE,
 T.QUERY,
 T.WAIT_EVENT_TYPE,
 T.WAIT_EVENT,
 T.QUERY_START 
FROM
 PG_STAT_ACTIVITY T
WHERE
 T.DATNAME = '數(shù)據(jù)庫用戶名';

上面查詢結(jié)果中:pid就是ACTIVITY的唯一標(biāo)識,state就是活動狀態(tài),query就是正在執(zhí)行的sql語句,query——start就是開始執(zhí)行的時間。

2.-- 查詢死鎖的ACTIVITY

SELECT T
 .PID,
 T.STATE,
 T.QUERY,
 T.WAIT_EVENT_TYPE,
 T.WAIT_EVENT,
 T.QUERY_START 
FROM
 PG_STAT_ACTIVITY T 
WHERE
 T.DATNAME = '數(shù)據(jù)庫用戶名' 
 AND T.WAIT_EVENT_TYPE = 'Lock';

3.將第二條查詢語句的pid字段的數(shù)字值記錄下來,執(zhí)行下面的查詢語句可以解鎖:

-- 通過pid解鎖對應(yīng)的ACTIVITY

select PG_CANCEL_BACKEND('6984');

上面的查詢語句,執(zhí)行了pg_cancel_backend()函數(shù),該函數(shù)是取消后臺操作,回滾未提交事物的用途。

4.解決idle in transaction

select pg_terminate_backend ('21967')

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • PostgreSQL 實(shí)現(xiàn)登錄及修改密碼操作
  • postgresql表死鎖問題的排查方式
  • Postgresql - 查看鎖表信息的實(shí)現(xiàn)
  • 基于postgresql行級鎖for update測試
  • Postgresql鎖機(jī)制詳解(表鎖和行鎖)
  • postgresql查詢鎖表以及解除鎖表操作
  • PostgreSQL中關(guān)閉死鎖進(jìn)程的方法
  • PostgreSQL用戶登錄失敗自動鎖定的處理方案

標(biāo)簽:崇左 黃山 湖南 湘潭 仙桃 衡水 銅川 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于postgresql數(shù)據(jù)庫鎖表問題的解決》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266