AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 52491
Accepted
kombo
kombo
Asked: 2013-10-31 03:51:56 +0800 CST2013-10-31 03:51:56 +0800 CST 2013-10-31 03:51:56 +0800 CST

Quando será a próxima corrida do meu zagueiro

  • 772

Criei um plano de manutenção para executar backups completos em um SQL Server 2008 R2.

A programação é toda última quinta-feira do mês. Às vezes, devido a algum motivo desconhecido, como queda de energia elétrica. Quando o backup é bem-sucedido, eu o verifico verificando o relatório do SQL Server para eventos de backup e restauração.

Agora, minha pergunta é: o SQL Server fornece uma maneira de verificar a próxima vez que o plano de manutenção será executado com base no cronograma do plano de manutenção? Além disso, há um script a ser executado para me mostrar que isso seria apreciado?

sql-server-2008-r2 maintenance-plans
  • 2 2 respostas
  • 163 Views

2 respostas

  • Voted
  1. Best Answer
    Craig Efrein
    2013-10-31T03:58:54+08:002013-10-31T03:58:54+08:00

    Este script fornecerá informações detalhadas sobre os trabalhos do SQL Server Agent e seus agendamentos. Isso não inclui nenhuma tarefa agendada que possa existir em Tarefas agendadas para Windows.

    USE msdb
    Go
    
    
    SELECT dbo.sysjobs.Name AS 'Job Name', 
        'Job Enabled' = CASE dbo.sysjobs.Enabled
            WHEN 1 THEN 'Yes'
            WHEN 0 THEN 'No'
        END,
        'Frequency' = CASE dbo.sysschedules.freq_type
            WHEN 1 THEN 'Once'
            WHEN 4 THEN 'Daily'
            WHEN 8 THEN 'Weekly'
            WHEN 16 THEN 'Monthly'
            WHEN 32 THEN 'Monthly relative'
            WHEN 64 THEN 'When SQLServer Agent starts'
        END, 
        'Start Date' = CASE next_run_date
            WHEN 0 THEN null
            ELSE
            substring(convert(varchar(15),next_run_date),1,4) + '/' + 
            substring(convert(varchar(15),next_run_date),5,2) + '/' + 
            substring(convert(varchar(15),next_run_date),7,2)
        END,
        'Start Time' = CASE len(next_run_time)
            WHEN 1 THEN cast('00:00:0' + right(next_run_time,2) as char(8))
            WHEN 2 THEN cast('00:00:' + right(next_run_time,2) as char(8))
            WHEN 3 THEN cast('00:0' 
                    + Left(right(next_run_time,3),1)  
                    +':' + right(next_run_time,2) as char (8))
            WHEN 4 THEN cast('00:' 
                    + Left(right(next_run_time,4),2)  
                    +':' + right(next_run_time,2) as char (8))
            WHEN 5 THEN cast('0' 
                    + Left(right(next_run_time,5),1) 
                    +':' + Left(right(next_run_time,4),2)  
                    +':' + right(next_run_time,2) as char (8))
            WHEN 6 THEN cast(Left(right(next_run_time,6),2) 
                    +':' + Left(right(next_run_time,4),2)  
                    +':' + right(next_run_time,2) as char (8))
        END,
    --  active_start_time as 'Start Time',
        CASE len(run_duration)
            WHEN 1 THEN cast('00:00:0'
                    + cast(run_duration as char) as char (8))
            WHEN 2 THEN cast('00:00:'
                    + cast(run_duration as char) as char (8))
            WHEN 3 THEN cast('00:0' 
                    + Left(right(run_duration,3),1)  
                    +':' + right(run_duration,2) as char (8))
            WHEN 4 THEN cast('00:' 
                    + Left(right(run_duration,4),2)  
                    +':' + right(run_duration,2) as char (8))
            WHEN 5 THEN cast('0' 
                    + Left(right(run_duration,5),1) 
                    +':' + Left(right(run_duration,4),2)  
                    +':' + right(run_duration,2) as char (8))
            WHEN 6 THEN cast(Left(right(run_duration,6),2) 
                    +':' + Left(right(run_duration,4),2)  
                    +':' + right(run_duration,2) as char (8))
        END as 'Max Duration',
        CASE(dbo.sysschedules.freq_subday_interval)
            WHEN 0 THEN 'Once'
            ELSE cast('Every ' 
                    + right(dbo.sysschedules.freq_subday_interval,2) 
                    + ' '
                    +     CASE(dbo.sysschedules.freq_subday_type)
                                WHEN 1 THEN 'Once'
                                WHEN 4 THEN 'Minutes'
                                WHEN 8 THEN 'Hours'
                            END as char(16))
        END as 'Subday Frequency'
    FROM dbo.sysjobs 
    LEFT OUTER JOIN dbo.sysjobschedules 
    ON dbo.sysjobs.job_id = dbo.sysjobschedules.job_id
    INNER JOIN dbo.sysschedules ON dbo.sysjobschedules.schedule_id = dbo.sysschedules.schedule_id 
    LEFT OUTER JOIN (SELECT job_id, max(run_duration) AS run_duration
            FROM dbo.sysjobhistory
            GROUP BY job_id) Q1
    ON dbo.sysjobs.job_id = Q1.job_id
    WHERE Next_run_time = 0
    
    UNION
    
    SELECT dbo.sysjobs.Name AS 'Job Name', 
        'Job Enabled' = CASE dbo.sysjobs.Enabled
            WHEN 1 THEN 'Yes'
            WHEN 0 THEN 'No'
        END,
        'Frequency' = CASE dbo.sysschedules.freq_type
            WHEN 1 THEN 'Once'
            WHEN 4 THEN 'Daily'
            WHEN 8 THEN 'Weekly'
            WHEN 16 THEN 'Monthly'
            WHEN 32 THEN 'Monthly relative'
            WHEN 64 THEN 'When SQLServer Agent starts'
        END, 
        'Start Date' = CASE next_run_date
            WHEN 0 THEN null
            ELSE
            substring(convert(varchar(15),next_run_date),1,4) + '/' + 
            substring(convert(varchar(15),next_run_date),5,2) + '/' + 
            substring(convert(varchar(15),next_run_date),7,2)
        END,
        'Start Time' = CASE len(next_run_time)
            WHEN 1 THEN cast('00:00:0' + right(next_run_time,2) as char(8))
            WHEN 2 THEN cast('00:00:' + right(next_run_time,2) as char(8))
            WHEN 3 THEN cast('00:0' 
                    + Left(right(next_run_time,3),1)  
                    +':' + right(next_run_time,2) as char (8))
            WHEN 4 THEN cast('00:' 
                    + Left(right(next_run_time,4),2)  
                    +':' + right(next_run_time,2) as char (8))
            WHEN 5 THEN cast('0' + Left(right(next_run_time,5),1) 
                    +':' + Left(right(next_run_time,4),2)  
                    +':' + right(next_run_time,2) as char (8))
            WHEN 6 THEN cast(Left(right(next_run_time,6),2) 
                    +':' + Left(right(next_run_time,4),2)  
                    +':' + right(next_run_time,2) as char (8))
        END,
    --  next_run_time as 'Start Time',
        CASE len(run_duration)
            WHEN 1 THEN cast('00:00:0'
                    + cast(run_duration as char) as char (8))
            WHEN 2 THEN cast('00:00:'
                    + cast(run_duration as char) as char (8))
            WHEN 3 THEN cast('00:0' 
                    + Left(right(run_duration,3),1)  
                    +':' + right(run_duration,2) as char (8))
            WHEN 4 THEN cast('00:' 
                    + Left(right(run_duration,4),2)  
                    +':' + right(run_duration,2) as char (8))
            WHEN 5 THEN cast('0' 
                    + Left(right(run_duration,5),1) 
                    +':' + Left(right(run_duration,4),2)  
                    +':' + right(run_duration,2) as char (8))
            WHEN 6 THEN cast(Left(right(run_duration,6),2) 
                    +':' + Left(right(run_duration,4),2)  
                    +':' + right(run_duration,2) as char (8))
        END as 'Max Duration',
        CASE(dbo.sysschedules.freq_subday_interval)
            WHEN 0 THEN 'Once'
            ELSE cast('Every ' 
                    + right(dbo.sysschedules.freq_subday_interval,2) 
                    + ' '
                    +     CASE(dbo.sysschedules.freq_subday_type)
                                WHEN 1 THEN 'Once'
                                WHEN 4 THEN 'Minutes'
                                WHEN 8 THEN 'Hours'
                            END as char(16))
        END as 'Subday Frequency'
    FROM dbo.sysjobs 
    LEFT OUTER JOIN dbo.sysjobschedules ON dbo.sysjobs.job_id = dbo.sysjobschedules.job_id
    INNER JOIN dbo.sysschedules ON dbo.sysjobschedules.schedule_id = dbo.sysschedules.schedule_id 
    LEFT OUTER JOIN (SELECT job_id, max(run_duration) AS run_duration
            FROM dbo.sysjobhistory
            GROUP BY job_id) Q1
    ON dbo.sysjobs.job_id = Q1.job_id
    WHERE Next_run_time <> 0
    
    ORDER BY [Start Date],[Start Time]
    

    insira a descrição da imagem aqui

    Atualização 04/11/2013

    Aqui está outro script que associa planos com seus trabalhos associados

    SELECT 
    s.name as [PlanName],
    spl.start_time AS [StartTime], 
    spl.end_time AS [EndTime], 
    spl.succeeded AS [Succeeded],
    sysjobs.name as [JobName],
    'Frequency' = CASE sysschedules.freq_type
            WHEN 1 THEN 'Once'
            WHEN 4 THEN 'Daily'
            WHEN 8 THEN 'Weekly'
            WHEN 16 THEN 'Monthly'
            WHEN 32 THEN 'Monthly relative'
            WHEN 64 THEN 'When SQLServer Agent starts'
    END,
        'Start Date' = CASE next_run_date
            WHEN 0 THEN null
            ELSE
            substring(convert(varchar(15),next_run_date),1,4) + '/' + 
            substring(convert(varchar(15),next_run_date),5,2) + '/' + 
            substring(convert(varchar(15),next_run_date),7,2)
    END,
        'Start Time' = CASE len(next_run_time)
            WHEN 1 THEN cast('00:00:0' + right(next_run_time,2) as char(8))
            WHEN 2 THEN cast('00:00:' + right(next_run_time,2) as char(8))
            WHEN 3 THEN cast('00:0' 
                    + Left(right(next_run_time,3),1)  
                    +':' + right(next_run_time,2) as char (8))
            WHEN 4 THEN cast('00:' 
                    + Left(right(next_run_time,4),2)  
                    +':' + right(next_run_time,2) as char (8))
            WHEN 5 THEN cast('0' 
                    + Left(right(next_run_time,5),1) 
                    +':' + Left(right(next_run_time,4),2)  
                    +':' + right(next_run_time,2) as char (8))
            WHEN 6 THEN cast(Left(right(next_run_time,6),2) 
                    +':' + Left(right(next_run_time,4),2)  
                    +':' + right(next_run_time,2) as char (8))
        END
    FROM msdb.dbo.sysmaintplan_plans AS s 
    INNER JOIN msdb.dbo.sysmaintplan_subplans AS sp ON sp.plan_id=s.id 
    LEFT OUTER JOIN msdb.dbo.sysmaintplan_log AS spl ON spl.subplan_id=sp.subplan_id 
    INNER JOIN msdb.dbo.sysjobs sysjobs on sysjobs.job_id = sp.job_id
    LEFT OUTER JOIN msdb.dbo.sysjobschedules sysjobschedules ON sysjobs.job_id = sysjobschedules.job_id
    INNER JOIN msdb.dbo.sysschedules sysschedules ON sysjobschedules.schedule_id = sysschedules.schedule_id
    
    • 2
  2. dsingh
    2014-02-24T23:12:30+08:002014-02-24T23:12:30+08:00

    USAR

    • selecione j.name, s.next_run_date, s.next_run_time de sysjobs j junção interna sysjobschedules s em j.job_id = s.job_id

    • Selecione jobsched.next_run_date, jobsched.next_run_time, sched.name, sched. ,jobsched. FROM msdb.dbo.sysschedules AS sched internal Join msdb.dbo.sysjobschedules AS jobsched ON sched.schedule_id = jobsched.schedule_id

    • 0

relate perguntas

  • Propriedades de redução automática, criptografia e modelo de recuperação no SQL Server 2008 R2

  • A instalação autônoma do cluster do SQL Server 2008 R2 falha com o erro - "Caracteres ilegais no caminho".

  • Migração de banco de dados grande

  • plano de manutenção executado pelo agente

  • Randomizando o conteúdo da tabela e armazenando-o de volta na tabela

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve