PostgreSQL9.5データベースロックテーブル問題の分析と解決策

//查询锁表的情况
SELECT A.locktype,A.DATABASE,A.pid,A.mode,b.relname FROM pg_locks A JOIN pg_class b ON A.relation = b.oid;
//杀死进程 
select pg_terminate_backend(pid); //pid为进程id号
//用于查询系统进程状态的表
select * from pg_stat_activity;
主要关注waiting 是否等待中,stat 进程状态, query 具体语句
当waiting 为t 的进行需要特别注意,query可以查看到具体语句,然后进行查杀

//システムプロセスのステータスをクエリするために使用されるテーブル
select * from pg_stat_activity;
主に待機が待機しているかどうか、プロセスプロセスのステータス、クエリ固有のステートメントが懸念さ
れるtを待機する際に特別な注意が必要な場合、クエリは特定のステートメントを表示し、強制終了できます
最後の理由は、mqの輻輳が原因で一部のプロセスが実行され、コードプロセスに更新などの操作が含まれ、データベースロックが常に接続リソースを占有していたためです。

/* 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 */

送信元:https : //www.cnblogs.com/zluckiy/p/12486838.html

おすすめ

転載: www.cnblogs.com/caidingyu/p/12760702.html