adminbd

Записи по mssql,oracle,windows и linux

Have a Question?

If you have any question you can ask below or enter what you are looking for!

Как сделать проверку выполнения задания. Мониторит запущено ли задание или нет на удаленном сервере.

Задача мониторить задания когда оно работает на другом сервере. Когда оно отработает запускать следующий шаг. Мониторим мы бэкап лог шипинга (Log shipping backup).

как выглядит задание (job):

Как сделать проверку выполнения задания. Мониторит запущено ли задание или нет на удаленном сервере.

первый шаг запускается задание на удаленном севере. второй шаг и третий в цикле проверяет его после этого стартует следующие шаги.

WAITFOR DELAY '00:05:00.000'
set nocount on

if (not object_id('tempdb..#running_jobs') is null)
	drop table #running_jobs

select
    ja.job_id,
    j.name as job_name,
    ja.start_execution_date,      
    isNull(last_executed_step_id,0) + 1 as current_executed_step_id,
    js.step_name
  
INTO #running_jobs
from s0030.msdb.dbo.sysjobactivity ja 
	left join s0030.msdb.dbo.sysjobhistory jh on ja.job_history_id = jh.instance_id
	inner join s0030.msdb.dbo.sysjobs j on ja.job_id = j.job_id
	inner join s0030.msdb.dbo.sysjobsteps js on ja.job_id = js.job_id and isNull(ja.last_executed_step_id,0) + 1 = js.step_id
where ja.session_id = (select top 1 session_id from s0030.msdb.dbo.syssessions order by agent_start_date desc)
			and start_execution_date is not null
			and stop_execution_date is null	

if exists( select * from #running_jobs where job_name = 'SSAS_LSBackup_ax_molniya' )
begin
	print 'Source jobs is still running. Retry.'
	select 1/0
end
else
if (select state from sys.databases where name = 'ax_molniya') <> 0
begin
	declare @state varchar(50)
	select @state = state_desc 	from sys.databases where name = 'ax_molniya'
	print 'Database [ax_molniya] is not ONLINE. Current state : ' + @state + '. Retry.'
	select 1/0
end
else
begin
	print 'Run'
	
end

Пример выполнения

Как сделать проверку выполнения задания. Мониторит запущено ли задание или нет на удаленном сервере.

Пока ошибка идёт цикл как только нет ошибки выполняет следующий шаг. ТО есть зацикленное задание

Leave a Reply

Your email address will not be published. Required fields are marked *

You can use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>