我尝试在 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
- 您的集群或工作组名称
- 出现问题的时间
- 您为解决问题而执行的操作