跳至内容

为什么我无法在 Amazon Redshift 中终止查询?

1 分钟阅读
0

我尝试在 Amazon Redshift 中终止一个长时间运行的查询,但该查询仍在继续运行。

简短描述

在以下情况下,Amazon Redshift 无法终止查询:

  • 该查询正在向客户端返回结果。
  • 查询过程遇到严重的内部错误。

即使成功终止查询,查询也可能显示为 Running(正在运行)。您必须等待查询回滚过程完成。

解决方法

要检查查询是否正在向客户端返回结果,请运行以下查询:

SELECT state FROM stv_wlm_query_state WHERE query = queryid

**注意:**将 queryid 替换为您的查询 ID。

在输出中,检查 STV_WLM_QUERY_STATE 中的 state 列是否为 Returning(正在返回)。

要终止查询,请运行以下 PG_TERMINATE_BACKEND 命令:

SELECT PG_TERMINATE_BACKEND(PID);

**注意:**将 PID 替换为进程 ID 或会话 ID。

如果 PG_TERMINATE_BACKEND 命令无法终止查询,请在 Amazon Redshift 控制台中执行硬重启。

**注意:**硬重启会关闭所有当前连接。您无法重启无服务器集群。

如果您使用 Amazon Redshift Serverless,则必须创建支持案例。在支持案例中,提供以下信息:

  • 您要终止的查询的 ID
  • 您的集群或工作组名称
  • 出现问题的时间
  • 您为解决问题而执行的操作
AWS 官方已更新 1 年前