Como posso excluir os backups diferenciais e de log do SQL Server anteriores ao backup completo mais antigo ainda no disco?

2

Quando eu excluo um backup completo, gostaria de excluir todos os arquivos que são inutilizados depois que o backup completo for excluído: especificamente, os backups diferenciais e de log que ocorrem antes do backup completo mais antigo que ainda está no disco. Alguém tem uma maneira de fazer isso (script do PowerShell, talvez)?

    
por Mark Freeman 07.11.2011 / 18:40

3 respostas

3

Aqui está um script T-SQL que escrevi para minha automação de backup que exclui todos, exceto o número especificado de backups completos e quaisquer backups diferenciais que foram criados antes do backup completo retido mais antigo. Ele se baseia no diferencial de ter a mesma extensão de arquivo e o nome do arquivo ter "_Diff" anexado a ele. Eu tenho um para arquivos de log também.

Excluir backups completos / diferenciais: link Excluir backup de log: link

    
por 07.11.2011 / 18:52
1

Se você criar um plano de manutenção, poderá ter tarefas de backup incluídas em subplanos. E no SubPlan para fazer backup do banco de dados (backups full, diff, tlog) você pode ter uma Tarefa de Limpeza de Manutenção. Para cada um dos tipos de backup, você pode especificar por quanto tempo deseja reter os arquivos. Por exemplo, você pode reter todos os backups por 7 dias. Depois desses 7 dias, os baks e trns podem ser / serão deletados.

Eu acredito que isso deve ser o que você procura.

    
por 07.11.2011 / 18:44
1

Eu uso um proc CLR para isso, postou o código em link

O PowerShell pode ser melhor hoje em dia, mas seria simples portar o código C # para o PowerShell

    
por 07.11.2011 / 18:51