none
Dúvida: sobre o msdb.dbo.backupset RRS feed

  • Pergunta

  • Boa tarde,

    O msdb.dbo.backupset mostra informações do últimos backups e restore realizado.

    Existe uma forma limpar a lista e deixa em branco, exemplo, quero monitorar a partir de hoje, mas quando executo o script ele me mostra data de outros restores antigos.

    Desde já, obrigado.

    terça-feira, 25 de junho de 2013 20:04

Respostas

  • Utilize a procedure "sp_delete_backuphistory".

    Você deve informar o parâmetro a data a partir de qual serão deletados.

    Exemplo: 

    msdb.dbo.sp_delete_backuphistory '20130701'

    Neste exemplo deletamos todos os backupsets do dia 01/07/2013 pra trás.

    Perceba que se houver, um registro do dia 01/07/2013 as 15:00, ele nao será deletado, pois quando você nao especifica a hora na data é o mesmo que especificar a hora 00:00:00

    Para deletar todos os backups, você pode usar a seguinte query:

    DECLARE
    @Amanha datetime;
    
    set @Amanha  = DATEADD(DD,1,current_timestamp);
    
    EXEC msdb.dbo.sp_delete_backuphistory @Amanha

    []'s | Rodrigo Ribeiro Gomes | MCTS/MCITP Dev/DBA


    • Editado RodrigoRRG segunda-feira, 1 de julho de 2013 17:52 Faltou o prefixo do banco
    • Sugerido como Resposta Renato Siqueira quinta-feira, 4 de julho de 2013 12:32
    • Marcado como Resposta Fabio Gomes Silva sexta-feira, 2 de agosto de 2013 18:48
    segunda-feira, 1 de julho de 2013 17:51
  • Correção a backup set apenas mostra backups e não restore.

    Para restore você tem a tabela restorehistory.


    Att,
    Marcos Freccia [MTA|MCTS|MCITP|MCT SQL Server 2008]
    Blog|Twitter
    Assine também os feeds clicando aqui

    segunda-feira, 1 de julho de 2013 22:43

Todas as Respostas

  • Utilize a procedure "sp_delete_backuphistory".

    Você deve informar o parâmetro a data a partir de qual serão deletados.

    Exemplo: 

    msdb.dbo.sp_delete_backuphistory '20130701'

    Neste exemplo deletamos todos os backupsets do dia 01/07/2013 pra trás.

    Perceba que se houver, um registro do dia 01/07/2013 as 15:00, ele nao será deletado, pois quando você nao especifica a hora na data é o mesmo que especificar a hora 00:00:00

    Para deletar todos os backups, você pode usar a seguinte query:

    DECLARE
    @Amanha datetime;
    
    set @Amanha  = DATEADD(DD,1,current_timestamp);
    
    EXEC msdb.dbo.sp_delete_backuphistory @Amanha

    []'s | Rodrigo Ribeiro Gomes | MCTS/MCITP Dev/DBA


    • Editado RodrigoRRG segunda-feira, 1 de julho de 2013 17:52 Faltou o prefixo do banco
    • Sugerido como Resposta Renato Siqueira quinta-feira, 4 de julho de 2013 12:32
    • Marcado como Resposta Fabio Gomes Silva sexta-feira, 2 de agosto de 2013 18:48
    segunda-feira, 1 de julho de 2013 17:51
  • Correção a backup set apenas mostra backups e não restore.

    Para restore você tem a tabela restorehistory.


    Att,
    Marcos Freccia [MTA|MCTS|MCITP|MCT SQL Server 2008]
    Blog|Twitter
    Assine também os feeds clicando aqui

    segunda-feira, 1 de julho de 2013 22:43
  • Bom dia,

    Fiz os testes, e consegui montar um script do que eu preciso, obrigado mesmo pela ajuda. E quando precisar limpar o histórico eu uso o que informaram acima.

    Vou deixar aqui caso alguém precise:

    select
    rsh.destination_database_name as Base,
    rsh.user_name as [Restaurado Por],
    rsh.restore_date as [restore started],
    coalesce(convert(varchar(12), max(rsh.restore_date ), 103),'-') as UltimoRestore
    from
    msdb.dbo.restorehistory rsh
    inner join msdb.dbo.backupset bs on rsh.backup_set_id = bs.backup_set_id
    where rsh.destination_database_name like 'CorporeRM%'
    group by rsh.destination_database_name, rsh.user_name, rsh.restore_date

    select
    database_name,
    backup_start_date as 'start',
    type,
    (backup_finish_date - backup_start_date) as 'duration',
    backup_finish_date ,backup_start_date,
    backup_size/1024/1024/1024 as 'size [gb]'
    from msdb.dbo.backupset
    where database_name like 'corporerm%' and type='d'
    order by start desc

    select * from msdb.dbo.restorehistory
    where YEAR( restore_date ) = 2013

    select name, database_name, database_creation_date, backup_start_date, backup_finish_date, *
    from msdb.dbo.backupset
    where year (backup_start_date) = 2013 and MONTH (backup_start_date)  = 08

    -- msdb.dbo.sp_delete_backuphistory '2013-08-03'

    sexta-feira, 2 de agosto de 2013 14:36
  • Bom dia Fabio,

    Por gentileza, aceite a melhor resposta do usuário que ajudou a resolver sua questão, para que futuramente outras pessoas saibam o que resolveu de fato o seu problema.

    []'s


    -


    sexta-feira, 2 de agosto de 2013 14:47
  • Pronto.
    sexta-feira, 2 de agosto de 2013 18:48