【问题标题】:Redshift query hangs forever and PG_TERMINATE_BACKEND doesn't workRedshift 查询永远挂起并且 PG_TERMINATE_BACKEND 不起作用
【发布时间】:2015-12-20 02:44:17
【问题描述】:

我使用 IntelliJ Ultimate 来查询 Redshift,以及调试一些 Python 代码,这些代码正在对 Redshift 进行简单的单行插入。通常,插入语句在不到一秒的时间内完成,但它开始挂起。该查询似乎正在等待另一个查询持有的锁。

我使用这些查询(以及其他)来查看发生了什么:

select t."table", l.*, q.*
from stv_locks l
join svv_table_info t on (l.table_id = t.table_id)
join stl_query q on (l.lock_owner = q.xid)

select * from stv_inflight;

select * from stv_sessions;

我发现我之前在调试器中运行的 python 代码仍然持有写锁,即使在进程退出之后也是如此。我确定有问题的 pid 是 30461,所以我尝试使用以下命令终止会话:

select pg_terminate_backend(30461);

但是,这似乎没有任何效果。参考Amazon's documentation for pg_terminate_backend,我也试过在有问题的语句上使用CANCEL命令:

cancel 1311;

当我尝试执行时,IntelliJ 似乎没有将此语句发送到服务器,所以我使用了 psql 命令行工具。执行后,问题仍然存在,尽管谷歌搜索了很多,我还是找不到答案。看来我可能必须重新启动 Redshift 实例才能释放锁。

【问题讨论】:

    标签: intellij-idea amazon-redshift


    【解决方案1】:

    事实证明,解决方案是重新启动我的 IDE。即使在我尝试在 IntelliJ 数据库控制台中断开与 Redshift 的连接之后,它似乎仍然保留了导致问题的连接。在我退出 IDE 后,当我使用查询验证时,锁被释放:

    select * from stv_locks
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-27
      • 2018-06-26
      • 2019-03-23
      • 2017-09-21
      • 1970-01-01
      • 2022-01-24
      • 2012-09-20
      • 1970-01-01
      相关资源
      最近更新 更多