You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Elastic Job Agent更新中无法执行作业,如何恢复正常运行?

Azure Elastic Job Agent Stuck in "Updating" State - Fixes for Unresponsive Jobs

我处理过不少类似的案例——当Azure Elastic Job Agent卡在"Updating"状态时,整个作业调度机制会完全失效:自动作业停跑、手动启动的作业卡在Created状态、停止命令毫无反应,这和你遇到的7天未执行作业、job_executions表字段不填充的现象完全匹配。下面是经过验证的解决步骤:

1. 强制重置Agent状态(优先尝试)

Azure门户没有直接的"取消更新"按钮,但可以通过Azure CLI或PowerShell触发Agent的重新部署,这通常能打破Updating的死循环:

用Azure CLI触发同步:

az sql job-agent update --resource-group <你的资源组名称> --server <你的SQL服务器名称> --name <你的Job Agent名称>

这个命令会重新同步Agent的配置,多数情况下能让状态回到正常的"Ready"。

用PowerShell操作:

Set-AzSqlJobAgent -ResourceGroupName <你的资源组名称> -ServerName <你的SQL服务器名称> -Name <你的Job Agent名称>

如果上面的命令没效果,可以尝试先暂停再重启Agent:

# 暂停Agent
az sql job-agent update --resource-group <你的资源组名称> --server <你的SQL服务器名称> --name <你的Job Agent名称> --state Paused
# 恢复Agent到Ready状态
az sql job-agent update --resource-group <你的资源组名称> --server <你的SQL服务器名称> --name <你的Job Agent名称> --state Ready

2. 清理失效的作业执行记录

你手动删除jobs.job_executions中失效记录的操作是对的,这里补充两点注意事项:

  • 只删除那些确认失效的条目:比如start_time为空、lifecycle一直停在Created的记录
  • 删除后不要立刻触发新作业,等Agent状态恢复正常后再操作

3. 极端方案:重建Job Agent(最后手段)

如果Agent卡在Updating状态超过24小时,且上面的方法都无效,只能考虑重建:

  1. 备份作业配置:用这些存储过程导出所有作业的详细信息:
    -- 导出作业基本信息
    EXEC jobs.sp_help_job;
    -- 导出指定作业的步骤
    EXEC jobs.sp_help_job_step @job_name = 'SomeJobName';
    -- 导出目标组信息
    EXEC jobs.sp_help_target_group;
    
  2. 删除当前的Job Agent
  3. 在同一SQL Server上重新创建Job Agent
  4. 导入备份的作业配置,重新设置调度规则

验证恢复效果

当Agent状态回到"Ready"后,按以下步骤验证:

  1. 先手动触发一个作业测试:
    EXEC [jobs].[sp_start_job] 'SomeJobName'
    
    然后查看执行记录:
    SELECT TOP 1000 * FROM jobs.job_executions WHERE job_name = 'SomeJobName' ORDER BY start_time DESC
    
    确认lifecycle会推进到InProgress,且target_type、target_database_name等字段正常填充。
  2. 等待自动调度的作业触发,确认自动执行功能恢复正常。

内容的提问来源于stack exchange,提问作者Keagon Louw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:47:19