万达换票券 发表于 2018-10-17 11:46:09

SQL Server job突然不工作了

  朋友负责的一个系统突然不工作了,让我帮忙查一下原因。结果我抓了一个Profiler Trace发现根本没有找到要执行的语句,后来从SQL Server job中发现了这个功能是在Job完成的。
  这个Job本来是2分钟运行一次,但是发现已经很久没运行了,手动运行了一下是正常的,为什么突然不工作了?而且发现所有的JOB都没有正常工作。我查了一下JOB的History发现记录竟然停在“1月4号”,而系统现在的时间是1月2号。原来这台机器被改过时间运行到1月4号,今天又改回到正常时间了。
  原因:由于之前SQL Server计算的下次运行时间是在1月4号,而当前系统修改到正常时间后是1月2号,所以不会运行。用下面的代码查看了下次运行时间:
  SELECT schedule_id,name, j.job_id,RIGHT('0'+CAST(next_run_time ASVARCHAR(6)),6)AS next_run_time,
  next_run_date
  FROM sysjobschedules j
  innerjoin sysjobs s on s.job_id =j.job_id
  where name ='jobname'
  或者:
  sp_help_jobschedule@job_name='jobname'
  证实了Next Run Date是1月4号的某个时间点。
  解决办法:导出脚本,删除旧的JOB然后重建,之后正常工作。
  目前还不知道有什么办法可以修改JOB下次运行时间(网上看到说用dbo.sp_sqlagent_notify可以,自己没有试过)。

页: [1]
查看完整版本: SQL Server job突然不工作了