簡體   English   中英

Postgres中的僵局

[英]Deadlock in Postgres

我在pgsql中並行執行幾個查詢時遇到死鎖。 它引發異常

  Detail: Process 6656 waits for ShareLock on transaction 609600; blocked by process 8616.
  Process 8616 waits for ShareLock on transaction 609603; blocked by process 6656.
  Hint: See server log for query details. 

在這里如何找到6656是哪個進程(查詢)?

如果您的pgsql版本> = 9.2,則將存在鎖定查詢

select * from pg_stat_activity where pid=6656

如果您的pgsql版本低於9.2,則鎖定查詢將不存在

select * from pg_stat_activity where procpid=6656

為了殺死過程

select pg_terminate_backend(pid_to_kill);

要么

select pg_cancel_backend(pid_to_cancel);

如果使用PGPOOL ,我建議您將pg_cancel_backend而不是pg_terminate_backend作為首選。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM