Redshift定时任务执行失败,无法查看报错信息及权限问题求助
Redshift定时任务执行失败的日志排查方案
一、解决stl_error权限问题
- 找集群的超级用户(拥有
SUPER权限)执行授权:GRANT SELECT ON stl_error TO your_username; - 若需要查看更多系统日志表,可申请批量授权:
GRANT SELECT ON ALL TABLES IN SCHEMA stl TO your_username; GRANT SELECT ON ALL TABLES IN SCHEMA pg_catalog TO your_username;
二、其他日志排查途径
- 查询
svl_statementtext视图:该视图记录所有执行的SQL语句,可按时间范围过滤定时任务相关语句:SELECT query, starttime, endtime, err_reason FROM svl_statementtext WHERE starttime BETWEEN 'YYYY-MM-DD HH:MI:SS' AND 'YYYY-MM-DD HH:MI:SS' AND query LIKE '%your_procedure_name%'; - 检查触发工具的日志:
- 若用AWS Glue触发,直接在Glue控制台的任务运行历史里看日志;
- 若用CloudWatch Events+Lambda触发,去CloudWatch Logs对应的Lambda日志组查执行报错;
- 查看存储过程自定义日志:如果存储过程里有写入自定义日志表的逻辑,直接查该表获取执行细节;
- 用
stl_query辅助定位:排查任务执行时的资源或时长异常:SELECT query, starttime, duration, rows FROM stl_query WHERE starttime BETWEEN 'YYYY-MM-DD HH:MI:SS' AND 'YYYY-MM-DD HH:MI:SS' AND query LIKE '%your_procedure_name%';
三、定时与手动执行的差异排查
- 确认定时任务的执行用户和手动执行的用户是否一致,不同用户的权限、
search_path等环境可能不同; - 核对定时任务的输入参数、变量(比如日期参数)是否和手动执行完全一致;
- 排查任务执行时段集群是否有运维操作(如备份、扩容),导致资源不足或连接异常。
内容的提问来源于stack exchange,提问作者Celia
相关产品推荐
相关产品推荐

