
Digamos que eu tenha uma tarefa de manutenção diária que:
- Faz backup de todos os bancos de dados e depois
- remove backups com mais de 3 dias.
Agora digamos que o primeiro backup no dia 1, começando às 10h, resulte nos seguintes arquivos
db1.bak 2012-01-01 10:04
db2.bak 2012-01-01 10:06
Agora digamos que no dia 4 a primeira etapa da tarefa de manutenção (backup dos bancos de dados) termine às 10h05. O SQL Server
- exclua db1.bak e mantenha db2.bak (seria lógico, mas pode ser surpreendente para o usuário) ou
- mantenha ambos ou
- remover ambos?
Responder1
O plano de manutenção removerá os arquivos de backup usando o horário em que a tarefa de limpeza for iniciada, pois gera o SQL nesse momento. Então nas três opções que você descreveu o primeiro caso é o que aconteceria.
Criei um plano de exemplo que remove arquivos com mais de 3 dias e executei o trabalho. Na saída de log abaixo, você pode ver que o trabalho foi executado às 12h25 do dia 07/05/2013 e removeu arquivos anteriores às 12h25 do dia 04/05/2013. O T-SQL abaixo mostra um comando aproximado de como a data pode ser gerada.
query:
select GETDATE()
select DATEADD(DAY, -3, GETDATE() )
results:
-----------------------
2013-05-07 12:51:52.073
(1 row(s) affected)
-----------------------
2013-05-04 12:51:52.073
(1 row(s) affected)
Plano de Manutenção: Duração do Plano de Manutenção: 00:00:02 Status: Êxito. Detalhes:
Banco de dados de backup na conexão do servidor local Bancos de dados: DBA Tipo: Completo Anexar existente Início da tarefa: 2013-05-07T12:25:03. Fim da tarefa: 2013-05-07T12:25:05. Comando de sucesso:BACKUP DATABASE [DBA] TO DISK = N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup\DBA_backup_2013_05_07_122503_6738713.bak'' COM NOFORMAT, NOINIT, NAME = N''DBA_backup_2013_05_07_122503_673871 3'', Pular, REBOBINAR, NOUNLOAD, ESTATÍSTICAS = 10
IR
Manutenção Limpeza na conexão do servidor local Limpeza de arquivos de backup do banco de dados Idade: Mais de 3 dias Início da tarefa: 2013-05-07T12:25:05. Fim da tarefa: 2013-05-07T12:25:05. Comando de sucesso:EXECUTE master.dbo.xp_delete_file 0,N''N:\Apps\MSSQL10.INSTANCE\MSSQL\Backup'',N''BAK'',N''2013-05-04T12:25:05''
IR