gpt4 book ai didi

postgresql 删除陈旧的锁

转载 作者:行者123 更新时间:2023-11-29 11:44:46 27 4
gpt4 key购买 nike

系统崩溃后,我的 Postgresql 数据库确实锁定了一行。

pg_locks 表包含很多没有 pid 的行。即

select locktype,database,relation,virtualtransaction,pid,mode,granted from pg_locks p1;

locktype    | database | relation | virtualtransaction |  pid  |       mode       | granted 
---------------+----------+----------+--------------------+-------+------------------+---------
relation | 16408 | 31459 | -1/40059 | | AccessShareLock | t
relation | 16408 | 31459 | -1/40059 | | RowExclusiveLock | t
relation | 16408 | 31022 | -1/40060 | | AccessShareLock | t
transactionid | | | -1/40060 | | ExclusiveLock | t
relation | 16408 | 31485 | -1/40060 | | AccessShareLock | t

如何杀死事务 40060 并移除锁?

最佳答案

好的,自己找到的解决方案:

  1. 通过 select * from pg_prepared_xacts where transaction = 40060;
  2. 找到交易的 gid(即上例中的 40060)
  3. 找一个很长的 gid。
  4. ROLLBACK PREPARED gid;

这将清除锁定。

关于postgresql 删除陈旧的锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42133961/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com