6 lines
2.6 KiB
JSON
6 lines
2.6 KiB
JSON
{
|
|
"id": "cc7bffa0-701b-4bb2-9a9c-090d9646a93e",
|
|
"prefix": "bkp_apo",
|
|
"description": "backup activepos_read and wait for the job to finish",
|
|
"body": "SET XACT_ABORT ON \r\nDECLARE @pos2 sysname;\r\n\r\nSELECT @pos2 = POS_hostname\r\nFROM Arizona.dbo.Point_of_sale\r\nWHERE POS_number = 2;\r\n\r\nBEGIN TRY\r\n EXEC sys.sp_testlinkedserver @pos2\r\n\r\n --start backup\r\n EXEC msdb.dbo.sp_start_job @job_name = N'D91030 - Backup ActivePos_Read' , @step_name = 'Purge old ActivePos_Read backups'\r\n\r\n WAITFOR DELAY '00:00:05.000'\r\n\r\n WHILE EXISTS(\r\n SELECT sj.name\r\n , sja.*\r\n FROM msdb.dbo.sysjobactivity AS sja\r\n INNER JOIN msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id\r\n WHERE sj.[name]='D91030 - Backup ActivePos_Read'\r\n AND sja.start_execution_date IS NOT NULL\r\n AND sja.stop_execution_date IS NULL\r\n ) BEGIN\r\n --PRINT 'job is still running '+CONVERT(VARCHAR(20), CURRENT_TIMESTAMP, 120);\r\n DECLARE @t VARCHAR(20) = CONVERT(VARCHAR(20), CURRENT_TIMESTAMP, 120);\r\n RAISERROR('%s, job is still running', 0, 1, @t) WITH NOWAIT;\r\n WAITFOR DELAY '00:00:05.000'\r\n END \r\n \r\n --last status\r\n SELECT\r\n JobName = J.name,\r\n H.*\r\n FROM\r\n msdb.dbo.sysjobs AS J\r\n CROSS APPLY (\r\n SELECT TOP 20\r\n JobName = J.name,\r\n StepNumber = T.step_id,\r\n StepName = T.step_name,\r\n StepStatus = CASE T.run_status\r\n WHEN 0 THEN 'Failed'\r\n WHEN 1 THEN 'Succeeded'\r\n WHEN 2 THEN 'Retry'\r\n WHEN 3 THEN 'Canceled'\r\n ELSE 'Running' END,\r\n ExecutedAt = msdb.dbo.agent_datetime(T.run_date, T.run_time),\r\n ExecutingHours = ((T.run_duration/10000 * 3600 + (T.run_duration/100) % 100 * 60 + T.run_duration % 100 + 31 ) / 60) / 60,\r\n ExecutingMinutes = ((T.run_duration/10000 * 3600 + (T.run_duration/100) % 100 * 60 + T.run_duration % 100 + 31 ) / 60) % 60,\r\n Message = T.message\r\n ,t.[instance_id]\r\n FROM msdb.dbo.sysjobhistory AS T\r\n WHERE T.job_id = J.job_id\r\n ORDER BY t.[instance_id] DESC\r\n ) AS H\r\n WHERE [J].[name]='D91030 - Backup ActivePos_Read'\r\n AND [H].[StepNumber] = 0\r\n ORDER BY J.name\r\n\r\n\r\nEND TRY\r\nBEGIN CATCH\r\n PRINT ERROR_MESSAGE()\r\n RAISERROR('pos %s is not reachable', 16, 2, @pos2)\r\nEND CATCH\r\n"
|
|
} |