好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > postgresql表死鎖問題的排查方式

postgresql表死鎖問題的排查方式

熱門標簽:漯河外呼電話系統 外呼調研系統 美容工作室地圖標注 海豐有多少商家沒有地圖標注 合肥公司外呼系統運營商 重慶自動外呼系統定制 打電話智能電銷機器人授權 辦公外呼電話系統 地圖標注和圖片名稱的區別

1.查詢激活的執行中的sql,查看有哪些更新update的sql。

select *
from pg_stat_activity
where state = 'active';

2. 查詢表中存在的鎖

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 lower(b.relname) = 'h5_game';

3. 殺掉死鎖進程

select pg_terminate_backend(pid)
from pg_stat_activity
where state = 'active'
and pid != pg_backend_pid()
--and pid = 14172
and pid in (select a.pid
from pg_locks a
join pg_class b on a.relation = b.oid
where lower(b.relname) = 'news_content')

鎖模式

/* NoLock is not a lock mode, but a flag value meaning "don't get a lock" */
#define NoLock                 0
 
#define AccessShareLock         1        /* SELECT */
#define RowShareLock          2        /* SELECT FOR UPDATE/FOR SHARE */
#define RowExclusiveLock        3        /* INSERT, UPDATE, DELETE */
#define ShareUpdateExclusiveLock 4       /* VACUUM (non-FULL),ANALYZE, CREATE
                                         * INDEX CONCURRENTLY */
#define ShareLock                5        /* CREATE INDEX (WITHOUT CONCURRENTLY) */
#define ShareRowExclusiveLock  6        /* like EXCLUSIVE MODE, but allows ROW
                                         * SHARE */
#define ExclusiveLock          7        /* blocks ROW SHARE/SELECT...FOR
                                         * UPDATE */
#define AccessExclusiveLock       8        /* ALTER TABLE, DROP TABLE, VACUUM
                                         * FULL, and unqualified LOCK TABLE */

補充:Postgresql死鎖的處理

背景:

對表進行所有操作都卡住,原因可能是更新表時導致這個表死鎖了,開始進行排查

解決一:查詢pg_stat_activity有沒有記錄

pg版本10.2

select pid,query,* from pg_stat_activity where datname='死鎖的數據庫' and wait_event_type = 'Lock';
select pg_cancel_backend('死鎖那條數據的pid值');##只能殺死select 語句, 對其他語句不生效
pg_terminate_backend('死鎖那條數據的pid值');#select,drop等各種操作

執行后發現select和delete表時正常執行,但truncate和drop表時會一直運行,也不報錯。

“drop table” 和 “truncate table” 需要申請排它鎖"ACCESS EXCLUSIVE", 執行這個命令卡住時,說明此時這張表上還有操作正在進行,比如查詢等,

那么只有等待這個查詢操作完成,“drop table” 或"truncate table"或者增加字段的SQL才能獲取這張表上的 "ACCESS EXCLUSIVE"鎖,操作才能進行下去。

解決二:查詢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_terminate_backend('進程ID');

問題解決!!!

坑:一開始不知道pg_cancel_backend(‘死鎖那條數據的pid值');##只能殺死select 語句, 對其他語句不生效,殺了進程查詢發現還存在,反復殺反復存在,換了pg_terminate_backend(‘進程ID')問題就解決了。

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

您可能感興趣的文章:
  • java排查死鎖示例
  • Java檢測死鎖案例
  • 詳解通過SQL進行分布式死鎖的檢測與消除
  • 如何解決Java多線程死鎖問題
  • MySQL鎖等待與死鎖問題分析
  • 死鎖詳解

標簽:蚌埠 晉城 來賓 珠海 錦州 烏海 株洲 衡陽

巨人網絡通訊聲明:本文標題《postgresql表死鎖問題的排查方式》,本文關鍵詞  postgresql,表,死鎖,問,題的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《postgresql表死鎖問題的排查方式》相關的同類信息!
  • 本頁收集關于postgresql表死鎖問題的排查方式的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产成人在线综合| 久久亚洲私人国产精品| 午夜无码人妻AV大片色欲黑人 | 俄罗斯free嫩交hd| 水蜜桃久久久久久| 鲁鲁资源站.ye321.com| 中国chinese调教在线| 欧美色图激情小说| 日本精品无码一二三区波多野结衣| 无码国产伦精品一区二区三区视频| 日本天堂免费观看| 一级三级黄色片| 爸爸的玩具有马鲤鱼乡| 精品欧美一线二线三线蜜桃| 欧美黑吊大战白妞| 操你啦小说| 亚色网站| 啊?好痛?嗯?小龙女| 成人在色线视频在线观看免费社区| 精品一区二区在线观看| 吃小男生嫩嫩的玉茎| 肉丝袜毛片A片丝袜美腿图片| 18禁女扒开腿免费视频爽| 男人的j伸到女人的屁股眼| 欧美精品国产亚洲| 免费视频不卡| 国模沟沟一区二区三区| ?国产精品海角社区在线观看| 小????伸进??????9幺| 国产一级爱| 国产福利一区二区三区四区| 中文字幕亚洲一区二区va在线| 男人揉女人奶摸下视频| 成人3d电影院| 耽美双性h文| 久久婷婷午色综合夜啪| 色宅男看片午夜大片免费看| 国产精品天天看天天做夜夜爽| 国产伦精品一区三区照一片| 色涩在线观看| 被闺蜜的男人cao翻了|