No momento, temos um plano de manutenção que se parece com isso:
- backup de todos os bancos de dados
- limpar backups antigos (> 24 horas)
Este trabalho é executado todos os dias. De vez em quando, esse script falha durante a etapa de backup, então ficamos com todos os arquivos de backup antigos.
Queremos reescrever este plano de manutenção para que funcione assim:
- banco de dados de backup 1
- limpar backup antigo para banco de dados 1
- banco de dados de backup 2
- limpar backup antigo para banco de dados 2
- etc...
Para o primeiro, podemos usar ações incorporadas. Existe alguma abordagem simples para o último método descrito? Ou temos que criar um script completo?
Não queremos adicionar todos os bancos de dados manualmente porque temos trabalho extra de manutenção toda vez que alguém adiciona um novo banco de dados, o que também resulta em bancos de dados potencialmente sem backup.
Você provavelmente deve mudar de planos de manutenção para SQL Agent Jobs e aproveitar um script como aqueles escritos por http://ola.hallengren.com/ . Você criaria uma Etapa de Trabalho para cada banco de dados. Isso lhe dará a flexibilidade que você está procurando.
ATUALIZAÇÃO: Minhas informações acima estavam incorretas. Você pode usar o script Ola.Hallengren.com para fazer o que procura sem precisar adicionar uma etapa de trabalho para cada banco de dados. Depois de revisar as informações do script, vi isso:
De: http://ola.hallengren.com/sql-server-backup.html
Dê uma olhada em sp_msforeachdb, vai demorar um pouco de script para atender às suas necessidades, algo assim . Se você está disposto a correr o risco de não ter backup se algo der errado com o backup atual, use WITH INIT, ele apenas sobrescreverá o backup atual e você não precisará fazer uma fase de limpeza.
De volta aos planos de manutenção, o SQL 2008, eu sei, adicionou "Ignorar bancos de dados offline", não tenho certeza se é em 2005.